Функция WmiFireEvent (wmilib.h)
Подпрограмма WmiFireEvent отправляет событие в WMI для доставки потребителям данных, запрашивающим уведомление о событии.
Синтаксис
NTSTATUS WmiFireEvent(
[in] PDEVICE_OBJECT DeviceObject,
[in] LPCGUID Guid,
[in] ULONG InstanceIndex,
[in] ULONG EventDataSize,
[in, optional] PVOID EventData
);
Параметры
[in] DeviceObject
Указатель на DEVICE_OBJECT драйвера.
[in] Guid
Указатель на GUID, представляющий блок событий.
[in] InstanceIndex
Если блок событий содержит несколько экземпляров, указывает индекс экземпляра.
[in] EventDataSize
Указывает количество байтов данных в EventData. Если данные для события не создаются, eventData должно быть равно нулю.
[in, optional] EventData
Указатель на выделенный драйвером непагированный буфер, содержащий данные, созданные драйвером для события. Если данные для события не создаются, eventData должен иметь значение NULL. WMI освобождает буфер без дальнейшего вмешательства драйвера.
Возвращаемое значение
WmiFireEvent распространяет состояние, возвращаемое IoWmiWriteEvent, или возвращает STATUS_INSUFFICIENT_RESOURCES, если не удалось выделить память для события.
Комментарии
Драйвер вызывает WmiFireEvent для отправки события в WMI для доставки всем потребителям данных, запрашивающим уведомление о событии. Все указатели, передаваемые в WmiFireEvent , должны указывать на неупакованную память, например на непагрегируемый пул.
Драйвер отправляет событие, только если оно было ранее включено подпрограммой DpWmiFunctionControl драйвера, которая вызывается WMI для обработки запроса IRP_MN_ENABLE_EVENT .
Драйвер записывает все данные, связанные с событием, в буфер eventData. WMI заполняет структуру WNODE_SINGLE_INSTANCE данными и вызывает IoWmiWriteEvent для доставки события.
Дополнительные сведения о трассировке событий см. в разделе Трассировка событий WMI.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 2000. |
Целевая платформа | Универсальное |
Верхняя часть | wmilib.h (включая Wmilib.h) |
Библиотека | Wmilib.lib |
IRQL | <= DISPATCH_LEVEL |