コールバック インターフェイスの関連付けの例

警告

UMDF 2 は UMDF の最新バージョンであり、UMDF 1 に取って代わるものです。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、Windows 10 の新しいバージョンでは UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは、UMDF 2 を使用する必要があります。

アーカイブされた UMDF 1 サンプルは、Windows 11, バージョン 22H2 - 2022 年 5 月 ドライバー サンプル アップデートでご確認いただけます。

詳しくは、UMDFの概要をご覧ください。

次のコード例は、ドライバーがデバイス コールバック オブジェクトの作成に使用する create-instance メソッドをドライバーが実装する方法を示しています。 ドライバーはコールバック コンテキストを割り当て、指定された IUnknown を 1 つ以上のコールバック インターフェイスに関連付けます。 その後、フレームワークは QueryInterface を使用して、ドライバーでサポートされているコールバック インターフェイスを検出できます。

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;
}