次の方法で共有


フレームワーク ファイル オブジェクト

警告

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の概要」を参照してください。

フレームワーク ファイル オブジェクトは、 IWDFFile インターフェイスによってドライバーに公開されます。 これは、開かれたデバイスのフレームワーク表現です。 アプリケーションが Microsoft Win32 CreateFile 関数を使用してデバイスを開くと、フレームワークによって、開かれたデバイス インスタンスを表すファイル オブジェクトが作成されます。 そのため、フレームワーク ファイル オブジェクトは概念的には、アプリケーションの CreateFile の呼び出しから返される Win32 ハンドルと同等です。 フレームワークでは、1 つのデバイスに関連付けられた複数のファイル オブジェクトを作成できます。 CreateFile の呼び出しが成功するたびに、各ファイル オブジェクトが 作成されます。 読み取りと書き込みなどのすべての I/O 操作は、特定のファイル オブジェクト インスタンスを対象とします。

手記 UMDF ドライバーに渡されるすべての要求は、ファイル オブジェクトに関連付けられます。 ただし、 WDM ドライバーと KMDF ドライバーに渡される要求は、ファイル オブジェクトに関連付けられていない場合があります。

UMDF ドライバーは 、IWDFIoRequest::GetFileObject メソッドを呼び出して、要求に関連付けられているファイル オブジェクトを取得できます。

ドライバーが GetFileObject を呼び出すと、フレームワークはインターフェイスの参照カウントをインクリメントします。 ドライバーは、インターフェイス ポインターの処理が完了したときに参照を解放する役割を担います。 これを行うには、オブジェクトがコンテキスト外になったときに参照カウントを自動的にデクリメントするスマート ポインターを使用するか、終了したらインターフェイスで Release を呼び出します。 スマート ポインターの使用方法を示すコード例については、「 GetFileObject」を参照してください。