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


Структура WMIGUIDREGINFO (wmilib.h)

Структура WMIGUIDREGINFO содержит сведения о регистрации для заданного блока данных или блока событий, предоставляемого драйвером, использующим подпрограммы поддержки библиотеки WMI.

Синтаксис

typedef struct _WMIGUIDREGINFO {
  LPCGUID Guid;
  ULONG   InstanceCount;
  ULONG   Flags;
} WMIGUIDREGINFO, *PWMIGUIDREGINFO;

Члены

Guid

Указатель на GUID, идентифицирующий блок. Память, содержащая GUID, может быть выстраиваема, если только она не используется для вызова WmiFireEvent.

InstanceCount

Указывает количество экземпляров, определенное для блока.

Flags

Биты флага, указывающие характеристики блока. Эти биты флагов определяются в файле заголовка Wmistr.h. WMI OR — значение параметра Flags с битами флагов, заданными драйвером в параметре RegFlags его подпрограммыDpWmiQueryReginfo , которые применяются ко всем блокам данных и блокам событий, зарегистрированным драйвером. Поэтому флаги дополняют параметры драйвера по умолчанию для заданного блока.

Драйвер может задать следующий бит флага в разделе Флаги:

WMIREG_FLAG_INSTANCE_PDO

Запрашивает WMI для создания статических имен экземпляров из идентификатора экземпляра устройства для PDO. Если этот флаг установлен, параметр Pdo подпрограммы DpWmiQueryReginfo драйвера указывает на PDO, переданный в подпрограмму AddDevice драйвера. WMI создает имена экземпляров из пути экземпляра устройства PDO. Использование пути к экземпляру устройства в качестве основы для статических имен экземпляров является эффективным, так как такие имена гарантированно будут уникальными. WMI автоматически предоставляет "понятное" имя экземпляра в виде элемента в блоке данных, который может запрашиваться потребителями данных.

Драйвер также может задать один или несколько из следующих битов флага:

WMIREG_FLAG_EVENT_ONLY_GUID

Блок может быть включен или отключен только как событие, а также не может быть запрошен или задан. Если этот флаг не задан, блок также можно запросить или задать.

WMIREG_FLAG_EXPENSIVE

Запрашивает WMI для отправки IRP_MN_ENABLE_COLLECTION запроса при первом открытии потребителем данных блока данных и запроса IRP_MN_DISABLE_COLLECTION , когда последний потребитель данных закрывает блок данных. Это рекомендуется, если сбор таких данных влияет на производительность, так как драйверу не нужно собирать данные, пока потребитель данных явно не запросит их, открыв блок.

WMIREG_FLAG_REMOVE_GUID

Запрашивает WMI для удаления поддержки этого блока. Этот флаг действителен только в ответ на запрос на обновление сведений о регистрации (IRP_MN_REGINFO или IRP_MN_REGINFO_EX с параметром Parameters.WMI.DataPath , для параметра WMIUPDATE).

Комментарии

Драйвер, который обрабатывает WMI IRP путем вызова подпрограмм поддержки библиотеки WMI, создает массив структур WMIGUIDREGINFO , по одной для каждого блока данных и блока событий, который необходимо зарегистрировать. Драйвер задает элемент GuidList своей WMILIB_CONTEXT структуры, чтобы указать на первый WMIGUIDREGINFO в серии.

Память для этой структуры можно выделить из выстраивного пула.

Требования

Требование Значение
Заголовок wmilib.h (включая Wmilib.h)

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

DpWmiQueryReginfo

IRP_MN_DISABLE_COLLECTION

IRP_MN_ENABLE_COLLECTION

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMILIB_CONTEXT

WmiFireEvent