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 開頭的位元組位移, 到下一個 WMIREGINFO 結構,其中包含其他驅動程式的 WMI 註冊資訊。 否則,NextWmiRegInfo 為零。
RegistryPath
會指出從這個 結構開頭到計數 Unicode 字串的位元組位移,這個字串會指定傳遞給驅動程式 DriverEntry 例程的登錄路徑。 字串必須對齊 USHORT 界限。 只有在回應 WMI 註冊要求時,才應設定此成員(IRP_MN_REGINFO或 IRP_MN_REGINFO_EX 參數.WMI.DataPath 設定為 WMIREGISTER)。
MofResourceName
指出從這個 結構開頭到計數 Unicode 字串的位元組位移,指定驅動程式映像檔中 MOF 資源的名稱。 字串必須對齊 USHORT 界限。 只有在回應 WMI 註冊要求時,才應設定此成員(IRP_MN_REGINFO或 IRP_MN_REGINFO_EX 參數.WMI.DataPath 設定為 WMIREGISTER)。
GuidCount
指出 WmiRegGuid陣列中 WMIREGGUID 結構的數目。
WmiRegGuid
這是 GuidCount WMIREGGUID 結構的陣列。
言論
為了回應註冊要求(IRP_MN_REGINFO 或 IRP_MN_REGINFO_EXParameters.WMI.DataPath 設定為 WMIREGISTER),驅動程式會建置至少一個 WMIREGINFO 結構,並將 WMIREGINFO 結構寫入 IrpStack->Parameters.WMI.Buffer。 WMIREGINFO 結構包含 WMIREGGUID 結構的陣列,每個數據區塊或驅動程序公開的事件區塊各有一個。
如果驅動程式代表另一個驅動程式處理 WMI 要求,它會針對另一個驅動程式所公開的每個區塊建置另一個 WMIREGINFO,其中包含 WMIREGGUID 結構數位, 會將 NextWmiRegInfoWMIREGINFO 的第一個 WMIREGINFO 開頭 到緩衝區中下一個 WMIREGINFO 開頭的位移, 和會將這兩個結構寫入緩衝區。 驅動程式會指出呼叫 IoCompleteRequest 以完成 IRP 時,WMIREGINFO 結構和相關聯的數據大小總計。
驅動程式可以使用相同的 WMIREGINFO 結構來移除或更新區塊,以回應更新要求(IRP_MN_REGINFO 或 IRP_MN_REGINFO_EX 參數.WMI.DataPath 設定為 WMIUPDATE)。 如果在 FlagsWMIREGGUID的成員中設定WMIREG_FLAG_REMOVE_GUID,WMI 會從驅動程式先前註冊的區塊清單中移除該區塊。 如果WMIREG_FLAG_REMOVE_GUID清楚,只有當其他 WMIREGGUID 成員變更時,WMI 才會更新該區塊的註冊資訊,否則 WMI 不會變更為該區塊的註冊資訊。
要求
要求 | 價值 |
---|---|
標頭 | wmistr.h (包括 Wmistr.h) |