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