WdfObjectGetTypedContext マクロ
[KMDF と UMDF に適用]
WdfObjectGetTypedContext マクロは、オブジェクトのコンテキスト空間へのポインターを返します。
構文
PVOID WdfObjectGetTypedContext(
Handle,
Type
);
パラメーター
Handle
フレームワークオブジェクトへのハンドル。
Type
オブジェクトのコンテキスト空間を記述するドライバー定義構造体のシンボル名。
戻り値
WdfObjectGetTypedContext マクロは、オブジェクトのコンテキスト空間へのポインターを指定します。
解説
WdfObjectGetTypedContext マクロを使用して、フレームワーク オブジェクトのコンテキスト空間へのポインターを取得できます。 このマクロは WDF_DECLARE_CONTEXT_TYPE マクロまたは WDF_DECLARE_CONTEXT_TYPE_WITH_NAME マクロによって作成されたオブジェクト固有のコンテキスト アクセサー メソッドを呼び出す代わりに使用します。 WdfObjectGetTypedContext を使用する場合でも、オブジェクト コンテキストを宣言するには、WDF_DECLARE_CONTEXT_TYPE または WDF_DECLARE_CONTEXT_TYPE_WITH_NAME を使用する必要があります。
これらのマクロの使用方法の詳細については、「フレームワーク オブジェクト コンテキスト空間」をご参照ください。
例
次のコード例では、要求オブジェクトのコンテキスト構造 (MY_REQUEST_CONTEXT) を定義し、その構造体を登録します。
typedef struct _MY_REQUEST_CONTEXT {
LIST_ENTRY ListEntry;
WDFMEMORY Memory;
} MY_REQUEST_CONTEXT, *PMY_REQUEST_CONTEXT;
WDF_DECLARE_CONTEXT_TYPE(MY_REQUEST_CONTEXT)
次のコード例では、要求オブジェクトを作成し、そのコンテキスト空間へのポインターを取得します。
WDFREQUEST Request;
WDF_OBJECT_ATTRIBUTES MyRequestObjectAttributes;
PMY_REQUEST_CONTEXT pMyContext;
WDF_OBJECT_ATTRIBUTES_INIT(&MyRequestObjectAttributes);
WDF_OBJECT_ATTRIBUTES_SET_CONTEXT_TYPE(
&MyRequestObjectAttributes,
MY_REQUEST_CONTEXT
);
status = WdfRequestCreate(
&MyRequestObjectAttributes,
NULL,
&Request
);
if (!NT_SUCCESS(status)) {
return status;
}
pMyContext = WdfObjectGetTypedContext(
Request,
MY_REQUEST_CONTEXT
);
要件
対象プラットフォーム |
ユニバーサル |
KMDF の最小バージョン |
1.0 |
UMDF の最小バージョン |
2.0 |
ヘッダー |
Wdfobject.h (Wdf.h を含む) |
ライブラリ |
Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL |
任意のレベル |