フレームワーク ファイル オブジェクト
警告
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の概要をご覧ください。
フレームワークのファイル オブジェクトは、IWDFFile インターフェイスによってドライバーに公開されます。 これは、開かれたデバイスのフレームワーク表現です。 アプリケーションが Microsoft Win32 CreateFile 関数を使用してデバイスを開くと、フレームワークによって、開かれたデバイス インスタンスを表すファイル オブジェクトが作成されます。 そのため、フレームワーク ファイル オブジェクトは概念的には、アプリケーションの CreateFile の呼び出し から返される Win32 ハンドルと同等です。 フレームワークでは、1 つのデバイスに関連付けられた複数のファイル オブジェクトを作成できます。 CreateFile の呼び出しが成功するたびに、各ファイル オブジェクトが作成されます。 読み取りと書き込みなどのすべての I/O 操作は、特定のファイル オブジェクト インスタンスを対象とします。
注 UMDF ドライバーに渡されるすべての要求は、ファイル オブジェクトに関連付けられています。 ただし、WDM ドライバーと KMDF ドライバーに渡される要求は、ファイル オブジェクトに関連付けられていない場合があります。
UMDF ドライバーは、IWDFIoRequest::GetFileObject メソッドを呼び出して、要求に関連付けられているファイル オブジェクトを取得できます。
ドライバーが GetFileObject を呼び出すと、フレームワークはインターフェイスの参照カウントをインクリメントします。 ドライバーは、インターフェイス ポインターの処理が完了したときに参照を解放する役割を担います。 これを行うには、オブジェクトがコンテキスト外になったときに参照カウントを自動的にデクリメントするスマート ポインターを使用するか、終了したらインターフェイスで Release を呼び出します。 スマート ポインターの使用方法を示すコード例については、GetFileObject を参照してください。