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