Функция WdfWmiInstanceFireEvent (wdfwmi.h)
[Относится только к KMDF]
Метод WdfWmiInstanceFireEvent отправляет событие WMI клиентам WMI, зарегистрированным для получения уведомления о событии.
Синтаксис
NTSTATUS WdfWmiInstanceFireEvent(
[in] WDFWMIINSTANCE WmiInstance,
[in, optional] ULONG EventDataSize,
[in, optional] PVOID EventData
);
Параметры
[in] WmiInstance
Дескриптор объекта экземпляра WMI, полученный драйвером при предыдущем вызове WdfWmiInstanceCreate.
[in, optional] EventDataSize
Размер (в байтах) данных события, на которые указывает EventData .
[in, optional] EventData
Указатель на данные события или значение NULL , если данные события отсутствуют.
Возвращаемое значение
WdfWmiInstanceFireEvent возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может возвращать одно из следующих значений:
Код возврата | Описание |
---|---|
|
Недостаточно памяти. |
|
Попытка платформы связаться с инструментарием WMI завершилась сбоем. |
|
Буфер данных событий был слишком велик. |
Этот метод также может возвращать другие значения NTSTATUS.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Драйвер должен вызывать WdfWmiInstanceFireEvent , только если клиент WMI зарегистрирован для уведомления о событии. Драйвер может определить, следует ли вызывать WdfWmiInstanceFireEvent , предоставив функцию обратного вызова EvtWmiProviderFunctionControl или вызвав WdfWmiProviderIsEnabled.
Драйвер должен поместить свои данные, относящиеся к событиям, если таковые есть, в буфер, на который указывает параметр EventData . Платформа добавляет все необходимые сведения о заголовке WMI.
Дополнительные сведения о методе WdfWmiInstanceFireEvent см. в разделе Поддержка WMI в Framework-Based Drivers.
Примеры
В следующем примере кода событие WMI отправляется клиентам WMI.
MY_WMI_EVENT_DATA eventData;
NTSTATUS status;
status = WdfWmiInstanceFireEvent(
WmiInstance,
sizeof(eventData),
(PVOID)&eventData
);
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Верхняя часть | wdfwmi.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (см. раздел Управление версиями библиотеки Платформы). |
IRQL | <= APC_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |