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


Функция 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, если операция завершится успешно. В противном случае этот метод может вернуть одно из следующих значений:

Возвращаемый код Описание
STATUS_INSUFFICIENT_RESOURCES
Недостаточно памяти.
STATUS_UNSUCCESSFUL
Сбой попытки платформы взаимодействовать с WMI.
STATUS_BUFFER_OVERFLOW
Буфер данных события был слишком большим.
 

Этот метод также может возвращать другие значения NTSTATUS.

Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Замечания

Драйвер должен вызывать WdfWmiInstanceFireEvent только в том случае, если клиент WMI зарегистрировался для уведомления о событии. Драйвер может определить, следует ли вызывать функцию обратного вызова WdfWmiInstanceFireEvent путем предоставления функции обратного вызова EvtWmiProviderFunctionControl или вызова WdfWmiProviderIsEnabled.

Драйвер должен поместить данные, относящиеся к событиям, в буфере, на который указывает параметр EventData . Платформа добавляет все необходимые сведения о заголовке WMI.

Дополнительные сведения о методе WdfWmiInstanceFireEvent см. в разделе Поддержка WMI в драйверах Framework-Based.

Примеры

Следующий пример кода отправляет событие WMI клиентам WMI.

MY_WMI_EVENT_DATA eventData;
NTSTATUS  status;

status = WdfWmiInstanceFireEvent(
                                 WmiInstance,
                                 sizeof(eventData),
                                 (PVOID)&eventData
                                 );

Требования

Требование Ценность
целевая платформа Всеобщий
минимальная версия KMDF 1.0
заголовка wdfwmi.h (include Wdf.h)
библиотеки Wdf01000.sys (см. управление версиями библиотеки Платформы).)
IRQL <= APC_LEVEL
правил соответствия DDI DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

См. также

EvtWmiProviderFunctionControl

WdfWmiInstanceCreate

WdfWmiProviderIsEnabled