WDF_FILEOBJECT_CLASS列挙 (wdfdevice.h)

[KMDF と UMDF に適用]

WDF_FILEOBJECT_CLASS列挙は、ドライバーが、アプリケーションまたは別のドライバーが作成または開こうとしているファイルを表すためにフレームワーク ファイル オブジェクトを必要とするかどうかを識別する値を定義します。 これらの値は、フレームワークがオブジェクトのハンドルを格納できる場所も指定します。

構文

typedef enum _WDF_FILEOBJECT_CLASS {
  WdfFileObjectInvalid = 0,
  WdfFileObjectNotRequired = 1,
  WdfFileObjectWdfCanUseFsContext = 2,
  WdfFileObjectWdfCanUseFsContext2 = 3,
  WdfFileObjectWdfCannotUseFsContexts = 4,
  WdfFileObjectCanBeOptional = 0x80000000
} WDF_FILEOBJECT_CLASS, *PWDF_FILEOBJECT_CLASS;

定数

 
WdfFileObjectInvalid
値: 0
内部使用のために予約されています。
WdfFileObjectNotRequired
値: 1
ドライバーにはフレームワーク ファイル オブジェクトは必要ありません。
WdfFileObjectWdfCanUseFsContext
値: 2
ドライバーにはフレームワーク ファイル オブジェクトが必要です。 フレームワークは、ファイルの Windows ドライバー モデル (WDM) FILE_OBJECT構造体の FsContext メンバーにオブジェクトのハンドル 格納できます。
WdfFileObjectWdfCanUseFsContext2
値: 3
ドライバーにはフレームワーク ファイル オブジェクトが必要です。 フレームワークは、ファイルの WDM FILE_OBJECT構造体の FsContext2 メンバーにオブジェクトのハンドルを格納できます。
WdfFileObjectWdfCannotUseFsContexts
値: 4
ドライバーにはフレームワーク ファイル オブジェクトが必要です。 1 つ以上のドライバーがこれらのメンバーを使用しているため、フレームワークは、ファイルの WDM FILE_OBJECT構造体の FsContext または FsContext2 メンバーにオブジェクトのハンドルを格納できません。 そのため、フレームワークはハンドルを内部的に格納する必要があります。
WdfFileObjectCanBeOptional
値: 0x80000000
ドライバーには通常、フレームワーク ファイル オブジェクトが必要ですが、ドライバーは、フレームワーク ファイル オブジェクトが見つからない、または異なる特殊な状況を処理することもできます。 これらの状況の詳細については、次の「備考」セクションを参照してください。

WdfFileObjectCanBeOptional は、ドライバーが WdfFileObjectWdfCanUseFsContext、WdfFileObjectWdfCanUseFsContext2、または WdfFileObjectWdfCannotUseFsContexts 列挙値を使用してまたはできるビット フラグです。

ほとんどのフレームワーク ベースのドライバーでは、このビット フラグは使用されません。

WdfFileObjectCanBeOptional 値は、バージョン 1.9 以降のバージョンの KMDF で使用できます。

注釈

WDF_FILEOBJECT_CLASS列挙体は、WDF_FILEOBJECT_CONFIG構造体で使用されます。

ドライバーが WdfRequestGetFileObject を呼び出して I/O 要求のフレームワーク ファイル オブジェクトを取得し、ドライバーが受信する WDM I/O 要求パケット (IRP) の一部に WDM ファイル オブジェクトが含まれていないことがわかっている場合、ドライバーは WdfFileObjectCanBeOptional ビット フラグを設定できます。

ドライバーが WdfFileObjectWdfCanUseFsContextWdfFileObjectWdfCanUseFsContext2、または WdfFileObjectWdfCannotUseFsContexts 値を設定し、WdfFileObjectCanBeOptional ビット フラグを設定していない場合、フレームワークの検証ツールは、ドライバーが WdfRequestGetFileObject メソッドを呼び出したときに、次の場合にエラーを報告します。

  • IRP には WDM ファイル オブジェクトは含まれません。
  • IRP には WDM ファイル オブジェクトが含まれていますが、ファイル オブジェクトは、ファイル作成 IRP が含まれているとは異なります。
WdfFileObjectCanBeOptional ビット フラグが設定されている場合、フレームワークの検証ツールはこのようなケースを無視します。

要件

要件
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfdevice.h (Wdf.h を含む)

こちらもご覧ください

FILE_OBJECT

WDF_FILEOBJECT_CONFIG