WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE マクロ

[KMDF と UMDF に適用]

WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE マクロは、ドライバーの WDF_OBJECT_ATTRIBUTES 構造体を初期化し、オブジェクトのドライバー定義コンテキスト情報を構造体に挿入します。

構文

void WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(
    _attributes,
    _contexttype
);

パラメーター

属性
WDF_OBJECT_ATTRIBUTES 構造体へのポインター。

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

戻り値

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

解説

WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE を呼び出す前に、WDF_DECLARE_CONTEXT_TYPE または WDF_DECLARE_CONTEXT_TYPE_WITH_NAME を、(関数内ではなく) グローバルに呼び出す必要があります。

WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE マクロは、WDF_OBJECT_ATTRIBUTES_INIT 関数と WDF_OBJECT_ATTRIBUTES_SET_CONTEXT_TYPE マクロを組み合わせたものになります。

次のコード例では、WDM_NDIS_REQUEST コンテキスト構造を定義します。 それから、この例は、WDF_DECLARE_CONTEXT_TYPE_WITH_NAME マクロを呼び出して構造体を登録し、コンテキスト アクセサ メソッド名を RequestGetMyContext に指定します。 次に、関数で、 WDF_OBJECT_ATTRIBUTES 構造体を割り当て、WDF_OBJECT_ATTRIBUTES 構造体を初期化します。

typedef struct _WDM_NDIS_REQUEST
{
   PMP_ADAPTER  Adapter;
   NDIS_OID  Oid;
   NDIS_REQUEST_TYPE  RequestType;
   PVOID  InformationBuffer;
   ULONG  InformationBufferLength;
   PULONG  BytesReadOrWritten;
   PULONG  BytesNeeded;
} WDM_NDIS_REQUEST, *PWDM_NDIS_REQUEST;

WDF_DECLARE_CONTEXT_TYPE_WITH_NAME(WDM_NDIS_REQUEST, RequestGetMyContext);

// above are in global space

...

WDF_OBJECT_ATTRIBUTES  attributes;

WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE( &attributes, WDM_NDIS_REQUEST );

要件

対象プラットフォーム

ユニバーサル

KMDF の最小バージョン

1.0

UMDF の最小バージョン

2.0

ヘッダー

Wdfobject.h (Wdf.h を含む)

関連項目

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT

WDF_OBJECT_ATTRIBUTES_SET_CONTEXT_TYPE