警告
UMDF 2 は UMDF の最新バージョンであり、UMDF 1 よりも優先されます。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、Windows 10 の新しいバージョンでは UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは、UMDF 2 を使用する必要があります。
アーカイブされた UMDF 1 サンプルは、Windows 11 バージョン 22H2 - May 2022 Driver Samples Updateにあります。
詳細については、「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 キューのディスパッチ モードの構成を参照してください。