Exemple d’association d’interfaces de rappel
Avertissement
UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2.
Les exemples UMDF 1 archivés se trouvent dans la Windows 11, version 22H2 - Mise à jour des exemples de pilotes de mai 2022.
Pour plus d’informations, consultez Prise en main avec UMDF.
L’exemple de code suivant montre comment un pilote implémente une méthode create-instance que le pilote utilise pour créer l’objet de rappel d’appareil. Le pilote alloue le contexte de rappel et associe l’IUnknown fourni à une ou plusieurs interfaces de rappel. L’infrastructure peut ensuite utiliser QueryInterface pour découvrir les interfaces de rappel prises en charge par le pilote.
static HRESULT CreateInstance(
IUnknown **ppUnknown,
IWDFDeviceInitialize *pDeviceInit,
HANDLE CompletionPort
) {
...
// Allocate the callback context
CMyDevice *pMyDevice = new CMyDevice();
...
HRESULT hr;
// Discover the callback interface
hr = pMyDevice->QueryInterface(
__uuidof(IUnknown),
(void **) ppUnknown
);
...
return hr;
}