Exempel på att definiera återuppringningsobjekt

Varning

UMDF 2 är den senaste versionen av UMDF och ersätter UMDF 1. Alla nya UMDF-drivrutiner ska skrivas med UMDF 2. Inga nya funktioner läggs till i UMDF 1 och det finns begränsat stöd för UMDF 1 på nyare versioner av Windows 10. Universella Windows-drivrutiner måste använda UMDF 2.

De arkiverade UMDF 1-exemplen finns i Windows 11 version 22H2 – maj 2022 Uppdatering av drivrutinsexempel.

Mer information finns i Komma igång med UMDF.

Följande kodexempel visar hur en drivrutin ärver från gränssnittet IPnpCallbackHardware för att definiera ett återuppringningsobjekt för enheten.

class CMyDevice :
       // Callback interface exposed to the framework
       public IPnpCallbackHardware 
{// The following data members make up the context
private:
   HANDLE                  m_CompletionPort;
   WINUSB_INTERFACE HANDLE m_UsbHandle;
   UCHAR                   m_BulkOutPipe;
   ULONG                   m_BulkOutMaxPacket;
   ...
// The following methods make up the callback interfaces
public:
    virtual HRESULT stdcall OnPrepareHardware( 
                              IWDFDevice* pDevice
                              );
    STDMETHOD( OnReleaseHardware )( IWDFDevice *pDevice );

   // Method used to create a device callback object
   static HRESULT CreateInstance( 
                     IUnknown **ppUnknown, 
                     IWDFDeviceInitialize *pDeviceInit,
                     HANDLE CompletionPort 
                     );
   ...
};