WMIREGINFOW 構造体 (wmistr.h)
WMIREGINFO 構造体には、データ ブロックとイベント ブロックを登録または更新するためにドライバーによって提供される情報が含まれています。
構文
typedef struct {
ULONG BufferSize;
ULONG NextWmiRegInfo;
ULONG RegistryPath;
ULONG MofResourceName;
ULONG GuidCount;
WMIREGGUIDW WmiRegGuid[];
} WMIREGINFOW, *PWMIREGINFOW;
メンバー
BufferSize
この WMIREGINFO 構造体に関連付けられている WMI 登録データの合計サイズを示します。次のように計算されます。 (sizeof(WMIREGINFO) + (GuidCount * sizeof(WMIREGGUID) + additionaldata)。 追加データには、MOF リソース名、レジストリ パス、ブロックの静的インスタンス名などの項目が含まれる場合があります。
NextWmiRegInfo
クラス ドライバーがミニクラス ドライバーの代わりに WMI 要求を処理する場合、 NextWmiRegInfo は、この WMIREGINFO の先頭から、他のドライバーの WMI 登録情報を含む次の WMIREGINFO 構造体までのオフセットをバイト単位で示します。 それ以外の場合、 NextWmiRegInfo は 0 です。
RegistryPath
この構造体の先頭から、ドライバーの DriverEntry ルーチンに渡されるレジストリ パスを指定するカウントされた Unicode 文字列へのオフセットをバイト単位で示します。 文字列は USHORT 境界に配置する必要があります。 このメンバーは、WMI 登録要求 (Parameters.WMI.DataPath が WMIREGISTER に設定されているIRP_MN_REGINFOまたはIRP_MN_REGINFO_EX) への応答でのみ設定する必要があります。
MofResourceName
この構造体の先頭から、ドライバーのイメージ ファイル内の MOF リソースの名前を指定するカウントされた Unicode 文字列へのオフセットをバイト単位で示します。 文字列は USHORT 境界に配置する必要があります。 このメンバーは、WMI 登録要求 (Parameters.WMI.DataPath が WMIREGISTER に設定されているIRP_MN_REGINFOまたはIRP_MN_REGINFO_EX) への応答でのみ設定する必要があります。
GuidCount
WmiRegGuid の配列内の WMIREGGUID 構造体の数を示します。
WmiRegGuid
GuidCount WMIREGGUID 構造体の配列です。
注釈
Parameters.WMI.DataPath が WMIREGISTER に設定された登録要求 (IRP_MN_REGINFOまたはIRP_MN_REGINFO_EX) に応答して、ドライバーは少なくとも 1 つの WMIREGINFO 構造体をビルドし、WMIREGINFO 構造体を IrpStack-Parameters.WMI.Buffer> のバッファーに書き込みます。 WMIREGINFO 構造体には、ドライバーによって公開されるデータ ブロックまたはイベント ブロックごとに 1 つずつ、WMIREGGUID 構造体の配列が含まれています。
ドライバーが別のドライバーの代わりに WMI 要求を処理する場合は、他のドライバーによって公開される各ブロックの WMIREGGUID 構造体の配列を含む別の WMIREGINFO をビルドし、最初の WMIREGINFO の NextWmiRegInfo メンバーを、最初の WMIREGINFO の先頭からバッファー内の次の WMIREGINFO の先頭までのバイト単位のオフセットに設定します。 と は、両方の構造体をバッファーに書き込みます。 ドライバーは、IRP を完了するために IoCompleteRequest を呼び出すときに、WMIREGINFO 構造体と関連付けられたデータの両方の合計サイズを示します。
ドライバーは、同じ WMIREGINFO 構造体を使用して、更新要求 (parameters.WMI.DataPath を WMIUPDATE に設定したIRP_MN_REGINFOまたはIRP_MN_REGINFO_EX) に応答してブロックを削除または更新できます。 WMIREGGUID の Flags メンバーでWMIREG_FLAG_REMOVE_GUIDが設定されている場合、WMI は、ドライバーによって以前に登録されたブロックの一覧からそのブロックを削除します。 WMIREG_FLAG_REMOVE_GUIDが明確な場合、WMI は、他の WMIREGGUID メンバーが変更された場合にのみ、そのブロックの登録情報を更新します。それ以外の場合、WMI はそのブロックの登録情報に変更されません。
要件
要件 | 値 |
---|---|
Header | wmistr.h (Wmistr.h を含む) |