次の方法で共有


WDF_DECLARE_CONTEXT_TYPE_WITH_NAME マクロ

[KMDF と UMDF に適用]

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME マクロは、ドライバーのオブジェクト固有のコンテキスト空間の指定した名前を持つアクセサー メソッドを作成します。

構文

void WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(
    _contexttype,
    _castingfunction
);

パラメーター

_contexttype
オブジェクトのコンテキスト空間の内容を記述するドライバー定義構造体の構造体型名。

_castingfunction
C 言語ルーチン名。 このマクロは、オブジェクトのコンテキスト空間用に作成されるアクセサー メソッドの名前としてこの名前を使用します。

戻り値

このマクロは値を返しません。

解説

このマクロの使用方法の詳細については、「フレームワーク オブジェクト コンテキスト空間」をご参照ください。

次のコード例では、要求オブジェクトのコンテキスト構造 (MY_REQUEST_CONTEXT) を定義します。 それから、この例は、WDF_DECLARE_CONTEXT_TYPE_WITH_NAME マクロを呼び出して構造体を登録し、コンテキスト アクセサ メソッド名を RequestGetMyContext に指定します。

typedef struct _MY_REQUEST_CONTEXT {
  LIST_ENTRY ListEntry;
  WDFMEMORY Memory;
} MY_REQUEST_CONTEXT, *PMY_REQUEST_CONTEXT;

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(MY_REQUEST_CONTEXT, RequestGetMyContext)

次のコード例では、要求オブジェクトを作成し、RequestGetMyContext アクセサ メソッドを使用して、オブジェクトのコンテキスト空間へのポインターを取得します。

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 = RequestGetMyContext(Request);

要件

対象プラットフォーム

ユニバーサル

KMDF の最小バージョン

1.0

UMDF の最小バージョン

2.0

ヘッダー

Wdfobject.h (Wdf.h を含む)

関連項目

WdfObjectGetTypedContext

WDF_DECLARE_CONTEXT_TYPE