デバイスの追加
警告
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の概要をご覧ください。
フレームワークは、ドライバー ホスト プロセスに読み込まれた各デバイスのデバイス オブジェクトを追加します。 デバイスを追加するために、フレームワークはドライバーの IDriverEntry::OnDeviceAdd メソッドを呼び出し、呼び出しで IWDFDriver インターフェイスと IWDFDeviceInitialize インターフェイスを渡します。 指定された IWDFDeviceInitialize インターフェイスは、ドライバーが IWDFDriver::CreateDevice を呼び出す前にのみ有効です。 ドライバーは、次の操作を実行するために IWDFDeviceInitialize の次のメソッドを呼び出すことができます。
ドライバーは、IWDFDeviceInitialize::RetrieveDevicePropertyStore メソッドを呼び出して、デバイス プロパティ ストアの IWDFNamedPropertyStore インターフェイスを取得します。 ドライバーは、IWDFNamedPropertyStore を使用して、デバイスのプロパティを取得および設定できます。
ドライバーは、IWDFDeviceInitialize::SetLockingConstraint メソッドを呼び出して、フレームワークによってコールバック関数を呼び出す方法を指定します。
ドライバーは、IWDFDeviceInitialize::SetFilter メソッドを呼び出して、フィルター デバイスとしてデバイスを有効にします。
ドライバーが IWDFDeviceInitialize を使用してデバイスを初期化した後、ドライバーは IWDFDriver::CreateDevice メソッドの呼び出しで IWDFDeviceInitialize へのポインターを渡して、デバイスの UMDF デバイス オブジェクトを作成します。 フレームワーク デバイス オブジェクトが作成されると、ドライバーは IWDFDevice::CreateIoQueue メソッドを呼び出して、読み取りと書き込みの I/O キューを作成します。 これらの IWDFDevice::CreateIoQueue 呼び出しでは、ドライバーは I/O キューから要求を受信する方法を特定する必要があります。 詳細については、I/O キューのディスパッチ モードの構成を参照してください。