WDF_DECLARE_CONTEXT_TYPE マクロ
[KMDF と UMDF に適用]
WDF_DECLARE_CONTEXT_TYPE マクロは、ドライバーのオブジェクト固有のコンテキスト空間の名前とアクセサ メソッドを作成します。
構文
void WDF_DECLARE_CONTEXT_TYPE(
_contexttype
);
パラメーター
_contexttype
オブジェクトのコンテキスト空間の内容を記述するドライバー定義構造体の構造体型名。
戻り値
このマクロは値を返しません。
解説
このマクロの使用方法の詳細については、「フレームワーク オブジェクト コンテキスト空間」をご参照ください。
例
次のコード例では、要求オブジェクトのコンテキスト構造 (MY_REQUEST_CONTEXT) を定義し、その構造体を登録してから、WDF_DECLARE_CONTEXT_TYPE マクロを呼び出します。 このマクロは、コンテキスト構造のアクセサー メソッドを作成し、メソッドに WdfObjectGet_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)
次のコード例では、要求オブジェクトを作成し、WdfObjectGet_MY_REQUEST_CONTEXTt アクセサ メソッドを使用し、オブジェクトのコンテキスト空間へのポインターを取得します。
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 = WdfObjectGet_MY_REQUEST_CONTEXT(Request);
要件
対象プラットフォーム |
ユニバーサル |
KMDF の最小バージョン |
1.0 |
UMDF の最小バージョン |
2.0 |
ヘッダー |
Wdfobject.h (Wdf.h を含む) |