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


Структура WMIREGINFOW (wmistr.h)

Структура WMIREGINFO содержит сведения, предоставляемые драйвером для регистрации или обновления блоков данных и блоков событий.

Синтаксис

typedef struct {
  ULONG       BufferSize;
  ULONG       NextWmiRegInfo;
  ULONG       RegistryPath;
  ULONG       MofResourceName;
  ULONG       GuidCount;
  WMIREGGUIDW WmiRegGuid[];
} WMIREGINFOW, *PWMIREGINFOW;

Члены

BufferSize

Указывает общий размер данных регистрации WMI, связанных с этой структурой WMIREGINFO, вычисляется следующим образом: (размер(WMIREGINFO) + (GuidCount * sizeof(WMIREGGUID) + дополнительных данных). Дополнительные данные могут включать такие элементы, как имя ресурса 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

Массив GuidCount структуры WMIREGGUID.

Замечания

В ответ на запрос регистрации (IRP_MN_REGINFO или IRP_MN_REGINFO_EX с параметром Parameters.WMI.DataPath задано значение WMIREGISTER), драйвер создает по крайней мере одну структуру WMIREGINFO и записывает структуру WMIREGINFO в буфер на IrpStack->Parameters.WMI.Buffer. Структура WMIREGINFO содержит массив структур WMIREGGU ID, по одному для каждого блока данных или блока событий, предоставляемого драйвером.

Если драйвер обрабатывает запросы 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 (include Wmistr.h)

См. также

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

IoCompleteRequest

WMIREGGUID