Структура WMIREGINFOW (wmistr.h)
Структура WMIREGINFO содержит сведения, предоставляемые драйвером для регистрации или обновления блоков данных и блоков событий.
Синтаксис
typedef struct {
ULONG BufferSize;
ULONG NextWmiRegInfo;
ULONG RegistryPath;
ULONG MofResourceName;
ULONG GuidCount;
WMIREGGUIDW WmiRegGuid[];
} WMIREGINFOW, *PWMIREGINFOW;
Члены
BufferSize
Указывает общий размер данных регистрации WMI, связанных с этой структурой WMIREGINFO , вычисляется следующим образом: (sizeof(WMIREGINFO) + (GuidCount * sizeof(WMIREGGUID) + additionaldata). Дополнительные данные могут включать такие элементы, как имя ресурса MOF, путь к реестру и статические имена экземпляров для блоков.
NextWmiRegInfo
Если драйвер обрабатывает запросы WMI от имени другого драйвера, так как драйвер класса может от имени драйвера мини-класса, NextWmiRegInfo указывает смещение в байтах от начала этого WMIREGINFO до следующей структуры WMIREGINFO , содержащей сведения о регистрации WMI для другого драйвера. В противном случае значение NextWmiRegInfo равно нулю.
RegistryPath
Указывает смещение в байтах от начала этой структуры до подсчитываемой строки Юникода, указывающей путь к реестру, передаваемый подпрограмме DriverEntry драйвера. Строка должна быть выровнена по границе USHORT. Этот элемент следует задавать только в ответ на запрос на регистрацию WMI (IRP_MN_REGINFO или IRP_MN_REGINFO_EX с параметром Parameters.WMI.DataPath , равным WMIREGISTER).
MofResourceName
Указывает смещение в байтах от начала этой структуры до подсчитываемой строки Юникода, указывающей имя ресурса MOF в файле образа драйвера. Строка должна быть выровнена по границе USHORT. Этот элемент следует задавать только в ответ на запрос на регистрацию WMI (IRP_MN_REGINFO или IRP_MN_REGINFO_EX с параметром Parameters.WMI.DataPath , равным WMIREGISTER).
GuidCount
Указывает количество структур WMIREGGUID в массиве WmiRegGuid.
WmiRegGuid
Массив структур WMIREGGUIDGuidCount.
Комментарии
В ответ на запрос регистрации (IRP_MN_REGINFO или IRP_MN_REGINFO_EX с параметром Parameters.WMI.DataPath, заданным в WMIREGISTER), драйвер создает по крайней мере одну структуру WMIREGINFO и записывает структуру WMIREGINFO в буфер по адресу IrpStack-Parameters.WMI.Buffer>. Структура WMIREGINFO содержит массив структур WMIREGGUID , по одному для каждого блока данных или блока событий, предоставляемого драйвером.
Если драйвер обрабатывает запросы WMI от имени другого драйвера, он создает еще один WMIREGINFO , содержащий массив структур WMIREGGUID для каждого блока, предоставленного другим драйвером, устанавливает для элемента NextWmiRegInfo первого WMIREGINFO смещение в байтах от начала первого WMIREGINFO до начала следующего WMIREGINFO в буфере. и записывает обе структуры в буфер. Драйвер указывает общий размер структур WMIREGINFO и связанных данных при вызове IoCompleteRequest для завершения IRP.
Драйвер может использовать одни и те же структуры WMIREGINFO для удаления или обновления блоков в ответ на запрос на обновление (IRP_MN_REGINFO или IRP_MN_REGINFO_EX с параметром Parameters.WMI.DataPath , установленным в WMIUPDATE. Если WMIREG_FLAG_REMOVE_GUID задано в элементе FlagsWMIREGGUID, WMI удаляет этот блок из списка блоков, ранее зарегистрированных драйвером. Если WMIREG_FLAG_REMOVE_GUID ясно, WMI обновляет сведения о регистрации для этого блока только в том случае, если изменились другие члены WMIREGGUID . В противном случае WMI не меняется на сведения о регистрации для этого блока.
Требования
Требование | Значение |
---|---|
Заголовок | wmistr.h (включая Wmistr.h) |