Функция 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.
Примеры
Следующий пример кода отправляет событие 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) |