WMIGUIDREGINFO 構造体 (wmilib.h)

WMIGUIDREGINFO 構造体には、WMI ライブラリサポート ルーチンを使用するドライバーによって公開される特定のデータ ブロックまたはイベント ブロックの登録情報が含まれています。

構文

typedef struct _WMIGUIDREGINFO {
  LPCGUID Guid;
  ULONG   InstanceCount;
  ULONG   Flags;
} WMIGUIDREGINFO, *PWMIGUIDREGINFO;

メンバー

Guid

ブロックを識別する GUID へのポインター。 GUID を含むメモリは、 WmiFireEvent の呼び出しにも使用されない限り、ページングできます。

InstanceCount

ブロックに対して定義されているインスタンスの数を指定します。

Flags

ブロックの特性を示すフラグ ビット。 これらのフラグ ビットは、Wmistr.h ヘッダー ファイルで定義されます。 WMI ORs ドライバーによって登録されているすべてのデータ ブロックとイベント ブロックに適用される DpWmiQueryReginfo ルーチンの RegFlags パラメーターでドライバーによって設定されたフラグ ビットを持つフラグ パラメーター値。 したがって、フラグは、特定のブロックに対するドライバーの既定の設定を補完します。

ドライバーは 、フラグで次のフラグ ビットを設定する場合があります。

WMIREG_FLAG_INSTANCE_PDO

PDO のデバイス インスタンス ID から静的インスタンス名を生成するように WMI に要求します。 このフラグが設定されている場合、ドライバーの DpWmiQueryReginfo ルーチンの Pdo パラメーターは、ドライバーの AddDevice ルーチンに渡される PDO を指します。 WMI は、PDO のデバイス インスタンス パスからインスタンス名を生成します。 静的インスタンス名のベースとしてデバイス インスタンス パスを使用すると、このような名前が一意であることが保証されるため、効率的です。 WMI は、データ コンシューマーが照会できるデータ ブロック内の項目として、インスタンスの "フレンドリ" 名を自動的に提供します。

ドライバーでは、次のフラグ ビットの 1 つ以上を設定することもできます。

WMIREG_FLAG_EVENT_ONLY_GUID

ブロックは、イベントとしてのみ有効または無効にすることができ、照会または設定することはできません。 このフラグがクリアされている場合は、ブロックを照会または設定することもできます。

WMIREG_FLAG_EXPENSIVE

データ コンシューマーがデータ ブロックを初めて開いたときに IRP_MN_ENABLE_COLLECTION 要求を送信するように WMI に要求し、最後のデータ コンシューマーがデータ ブロックを閉じるときに IRP_MN_DISABLE_COLLECTION 要求を要求します。 ドライバーは、データ コンシューマーがブロックを開いて明示的に要求するまでデータを収集する必要がないため、このようなデータを収集することがパフォーマンスに影響する場合に推奨されます。

WMIREG_FLAG_REMOVE_GUID

このブロックのサポートを削除するように WMI に要求します。 このフラグは、登録情報を更新する要求 (Parameters.WMI.DataPath が WMIUPDATE に設定されているIRP_MN_REGINFOまたはIRP_MN_REGINFO_EX) への応答でのみ有効です。

注釈

WMI ライブラリサポート ルーチンを呼び出して WMI IRP を処理するドライバーは、登録するデータ ブロックとイベント ブロックごとに 1 つずつ、 WMIGUIDREGINFO 構造体の配列を構築します。 ドライバーは、そのWMILIB_CONTEXT構造体の GuidList メンバーが、シリーズの最初の WMIGUIDREGINFO を指すように設定します。

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

要件

要件
Header wmilib.h (Wmilib.h を含む)

こちらもご覧ください

DpWmiQueryReginfo

IRP_MN_DISABLE_COLLECTION

IRP_MN_ENABLE_COLLECTION

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMILIB_CONTEXT

WmiFireEvent