Поделиться через


Структура 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)

См. также раздел

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

IoCompleteRequest

WMIREGGUID