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 構造体の先頭から、連続した一連の InstanceCount カウント 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 に要求します。 このフラグは、登録情報を更新する要求 (Parameters.WMI.DataPath が WMIUPDATE に設定されているIRP_MN_REGINFOまたは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 構造体の先頭から、連続した一連の InstanceCount カウント Unicode 文字列までのオフセットをバイト単位で示します。 このメンバーは、 フラグでWMIREG_FLAG_INSTANCE_LISTが設定されている場合にのみ有効です。 ブロックが動的インスタンス名で登録されている場合、WMI は InstanceNameList を無視します。
DUMMYUNIONNAME.BaseNameOffset
この WMIREGGUID を含む WMIREGINFO 構造体の先頭から、静的インスタンス名を生成するための WMI のベースとして機能する 1 つのカウントされた Unicode 文字列までのオフセットをバイト単位で示します。 このメンバーは、 フラグで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 インスタンス名の定義」を参照してください。
要件
要件 | 値 |
---|---|
Header | wmistr.h (Wmistr.h を含む) |