次の方法で共有


WMILIB_CONTEXT構造体 (wmilib.h)

WMILIB_CONTEXT 構造体は、ドライバーのデータ ブロックとイベント ブロックの登録情報を提供し、ドライバーの WMI ライブラリコールバック ルーチンのエントリ ポイントを定義します。

構文

typedef struct _WMILIB_CONTEXT {
  ULONG                 GuidCount;
  PWMIGUIDREGINFO       GuidList;
  PWMI_QUERY_REGINFO    QueryWmiRegInfo;
  PWMI_QUERY_DATABLOCK  QueryWmiDataBlock;
  PWMI_SET_DATABLOCK    SetWmiDataBlock;
  PWMI_SET_DATAITEM     SetWmiDataItem;
  PWMI_EXECUTE_METHOD   ExecuteWmiMethod;
  PWMI_FUNCTION_CONTROL WmiFunctionControl;
} WMILIB_CONTEXT, *PWMILIB_CONTEXT;

メンバーズ

GuidCount

ドライバーによって登録されたブロックの数を指定します。

GuidList

各ブロックの登録情報を含む WMIGUIDREGINFO 構造体GuidCount の配列へのポインター。

QueryWmiRegInfo

ドライバーの DpWmiQueryReginfo ルーチンへのポインター。これは、WMI ライブラリサポート ルーチンを呼び出すドライバーに必要なエントリ ポイントです。

QueryWmiDataBlock

ドライバーの DpWmiQueryDataBlock ルーチンへのポインター。これは、WMI ライブラリサポート ルーチンを呼び出すドライバーに必要なエントリ ポイントです。

SetWmiDataBlock

ドライバーの DpWmiSetDataBlock ルーチンへのポインター。これは、WMI ライブラリサポート ルーチンを呼び出すドライバーの省略可能なエントリ ポイントです。 ドライバーがこのルーチンを実装していない場合は、このメンバーを nullに設定する必要があります。 この場合、WMI は、IRP_MN_CHANGE_SINGLE_INSTANCE 要求に応答して呼び出し元にSTATUS_WMI_READ_ONLYを返します。

SetWmiDataItem

ドライバーの DpWmiSetDataItem ルーチンへのポインター。これは、WMI ライブラリサポート ルーチンを呼び出すドライバーの省略可能なエントリ ポイントです。 ドライバーがこのルーチンを実装していない場合は、このメンバーを nullに設定する必要があります。 この場合、WMI は、IRP_MN_CHANGE_SINGLE_ITEM 要求に応答して呼び出し元にSTATUS_WMI_READ_ONLYを返します。

ExecuteWmiMethod

ドライバーの DpWmiExecuteMethod ルーチンへのポインター。これは、WMI ライブラリサポート ルーチンを呼び出すドライバーの省略可能なエントリ ポイントです。 ドライバーがこのルーチンを実装していない場合は、このメンバーを nullに設定する必要があります。 この場合、WMI は IRP_MN_EXECUTE_METHOD 要求に応答して呼び出し元にSTATUS_INVALID_DEVICE_REQUESTを返します。

WmiFunctionControl

ドライバーの DpWmiFunctionControl ルーチンへのポインター。これは、WMI ライブラリサポート ルーチンを呼び出すドライバーの省略可能なエントリ ポイントです。 ドライバーがこのルーチンを実装していない場合は、このメンバーを nullに設定する必要があります。 この場合、WMI は、IRP_MN_ENABLE_XXX または IRP_MN_DISABLE_XXX 要求に応答して、呼び出し元にSTATUS_SUCCESSを返します。

備考

WMI ライブラリサポート ルーチンを呼び出して WMI IRP を処理するドライバーは、初期化された WMILIB_CONTEXT 構造体 (またはこのような構造体へのポインター) をデバイス拡張機能に格納します。 ドライバーは、各デバイス オブジェクトが同じデータ ブロックのセットを提供する場合、複数のデバイス オブジェクトに同じ WMILIB_CONTEXT 構造を使用できます。

ドライバーは、IRP_MJ_SYSTEM_CONTROL 要求を受信すると、その WMILIB_CONTEXT 構造体へのポインター、デバイス オブジェクトへのポインター、および IRP へのポインターを使用して、WmiSystemControl を呼び出します。 WmiSystemControl は、IRP に WMI 要求が含まれているかどうかを判断し、含まれている場合は、ドライバーの適切な DpWmiXxx ルーチンを呼び出すことによって要求を処理します。

この構造体のメモリは、ページング されたプールから割り当てることができます。

必要条件

要件 価値
ヘッダー wmilib.h (Wmilib.h を含む)

関連項目

dpWmiExecuteMethod の

DpWmiFunctionControl の

DpWmiQueryDataBlock の

DpWmiQueryReginfo を する

DpWmiSetDataBlock を する

DpWmiSetDataItem を する

WMIGUIDREGINFO の

WmiSystemControl の