次の方法で共有


WMIREGGUIDW 構造体 (wmistr.h)

WMIREGGUID 構造体には、データ ブロックまたはイベント ブロックの新規または更新された登録情報が含まれています。

構文

typedef struct {
  GUID  Guid;
  ULONG Flags;
  ULONG InstanceCount;
  union {
    ULONG     InstanceNameList;
    ULONG     BaseNameOffset;
    ULONG_PTR Pdo;
    ULONG_PTR InstanceInfo;
  } DUMMYUNIONNAME;
} WMIREGGUIDW, *PWMIREGGUIDW;

メンバーズ

Guid

登録または更新するブロックを表す GUID を指定します。

Flags

登録または更新するブロックの特性を示します。

ブロックが静的インスタンス名に登録されている場合、ドライバーは次のいずれかのフラグを設定します。

WMIREG_FLAG_INSTANCE_LIST

IrpStack->Parameters.WMI.Buffer にあるバッファー内の WMIREGINFO 構造体に続く静的リストで、ドライバーがこのブロックの静的インスタンス名提供することを示します。 このフラグが設定されている場合、InstanceNameList は、この WMIREGGUID を含む WMIREGINFO 構造体の先頭から、カウントされた Unicode 文字列 連続した一連の インスタンス数までのオフセット (バイト単位) です。

WMIREG_FLAG_INSTANCE_BASENAME

IrpStack->Parameters.WMI.Buffer にあるバッファー内の WMIREGINFO 構造体に従って、ドライバーによって提供される基本名から静的インスタンス名を生成するように WMI に要求します。 WMI では、ベース名にカウンターを追加することでインスタンス名が生成されます。 このフラグが設定されている場合、baseNameOffset は、この WMIREGGUID を含む、WMIREGINFO 構造体の先頭から、ベース名として機能する 1 つのカウントされた Unicode 文字列へのオフセット (バイト単位) です。

WMIREG_FLAG_INSTANCE_PDO

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

ブロックが動的インスタンス名で登録されている場合は、WMIREG_FLAG_INSTANCE_LIST、WMIREG_FLAG_INSTANCE_BASENAME、およびWMIREG_FLAG_INSTANCE_PDOをクリアする必要があります。

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

WMIREG_FLAG_EVENT_ONLY_GUID

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

WMIREG_FLAG_EXPENSIVE

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

WMIREG_FLAG_REMOVE_GUID

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

WMIREG_FLAG_TRACED_GUID

ブロックはログ ファイルにのみ書き込み可能で、evntrace.h で宣言されたユーザー モード ルーチンを介してのみアクセスできます。 NT カーネル モードのデータ プロバイダーのみがこのフラグを設定します。

WMIREG_FLAG_TRACE_CONTROL_GUID

GUID は、MOF ファイルに関連付けられているトレース GUID を有効または無効にするためのコントロール GUID として機能します。 このフラグは、WMIREG_FLAG_TRACED_GUIDも設定されている場合にのみ有効です。 NT カーネル モードのデータ プロバイダーのみがこのフラグを設定します。

InstanceCount

このブロックに対して定義する静的インスタンス名の数を指定します。 ブロックが動的インスタンス名で登録されている場合、WMI は InstanceCount 無視します。

DUMMYUNIONNAME

DUMMYUNIONNAME.InstanceNameList

この WMIREGGUID を含む WMIREGINFO 構造体の先頭から、カウントされた Unicode 文字列 連続した一連の InstanceCount までのオフセットをバイト単位で示します。 このメンバーは、FlagsでWMIREG_FLAG_INSTANCE_LISTが設定されている場合にのみ有効です。 ブロックが動的インスタンス名で登録されている場合、WMI は InstanceNameList 無視します。

DUMMYUNIONNAME.BaseNameOffset

この WMIREGGUID を含む WMIREGINFO 構造体の先頭から、静的インスタンス名を生成する WMI のベースとして機能する単一のカウント Unicode 文字列までのオフセットをバイト単位で示します。 このメンバーは、FlagsでWMIREG_FLAG_INSTANCE_BASENAMEが設定されている場合にのみ有効です。 ブロックが動的インスタンス名で登録されている場合、WMI は BaseNameOffset 無視します。

DUMMYUNIONNAME.Pdo

ドライバーの AddDevice ルーチンに渡される物理デバイス オブジェクト (PDO) へのポインター。 WMI では、静的インスタンス名の生成元となるベースとして、この PDO のデバイス インスタンス パスが使用されます。 このメンバーは、FlagsでWMIREG_FLAG_INSTANCE_PDOが設定されている場合にのみ有効です。 ブロックが動的インスタンス名で登録されている場合、WMI は Pdo 無視します。

DUMMYUNIONNAME.InstanceInfo

WMI で使用するために予約されています。

備考

ドライバーは、そのブロックを登録または更新する IRP_MN_REGINFO または IRP_MN_REGINFO_EX 要求に応答して、1 つ以上の WMIREGGUID 構造体を構築します。 ドライバーは、WMIREGINFO 構造体の WmiRegGuid メンバーでこのような構造体の配列を渡します。この構造体は、ドライバーが IrpStack->Parameters.WMI.Buffer のバッファー書き込みます。

ドライバーは、静的または動的なインスタンス名でブロックを登録または更新できます。 静的インスタンス名は最高のパフォーマンスを提供します。ただし、インスタンスまたはインスタンス名の数が頻繁に変更される場合は、動的インスタンス名がデータ ブロックに適しています。 インスタンス名の詳細については、「WMI インスタンス名の定義」を参照してください。

必要条件

要件 価値
ヘッダー wmistr.h (Wmistr.h を含む)

関連項目

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMIREGINFO