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


функция обратного вызова EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD (wdfwmi.h)

[Относится только к KMDF]

Функция обратного вызова EvtWmiInstanceExecuteMethod драйвера выполняет указанный метод, который драйвер предоставляет для экземпляра поставщика данных WMI.

Синтаксис

EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD EvtWdfWmiInstanceExecuteMethod;

NTSTATUS EvtWdfWmiInstanceExecuteMethod(
  [in]      WDFWMIINSTANCE WmiInstance,
  [in]      ULONG MethodId,
  [in]      ULONG InBufferSize,
  [in]      ULONG OutBufferSize,
  [in, out] PVOID Buffer,
  [out]     PULONG BufferUsed
)
{...}

Параметры

[in] WmiInstance

Дескриптор объекта экземпляра WMI.

[in] MethodId

Значение , идентифицирующее метод в экземпляре поставщика. Это значение соответствует значению WmiMethodId , указанному в MOF-файле поставщика.

[in] InBufferSize

Количество байтов входных данных.

[in] OutBufferSize

Количество байтов выходных данных, на которые может храниться буфер, на который указывает буфер .

[in, out] Buffer

Указатель на буфер, используемый для ввода, вывода или и того, и другого, как определено указанным методом. Если указаны входные и выходные данные, драйвер перезаписывает входные данные выходными данными.

[out] BufferUsed

Указатель на расположение, которое получает количество байтов, записанных драйвером в выходной буфер. Если размер выходного буфера, указанный параметром OutBufferSize , слишком мал, драйвер устанавливает для этого расположения требуемый размер буфера.

Возвращаемое значение

Функция обратного вызова EvtWmiInstanceExecuteMethod должна возвращать STATUS_SUCCESS, если операция выполнена успешно. В противном случае эта функция должна возвращать значение состояния, для которого NT_SUCCESS(status) равно FALSE. Драйвер должен возвращать STATUS_BUFFER_TOO_SMALL, если значение параметра OutBufferSize указывает, что выходной буфер слишком мал для получения данных.

Комментарии

Чтобы зарегистрировать функцию обратного вызова EvtWmiInstanceExecuteMethod , драйвер должен поместить адрес функции в структуру WDF_WMI_INSTANCE_CONFIG перед вызовом WdfWmiInstanceCreate.

После выполнения драйвером метода экземпляра, заданного параметром MethodId , драйвер должен использовать параметр BufferUsed для хранения количества байтов, записанных в буфер.

Платформа не синхронизирует вызовы функций обратного вызова событий WMI драйвера друг с другом или с другими функциями обратного вызова событий драйвера. Если данные функции обратного вызова EvtWmiInstanceExecuteMethod являются динамическими и совместно используются другими функциями обратного вызова, драйвер может использовать блокировки ожидания или спин-блокировки платформы для синхронизации доступа к данным.

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

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Верхняя часть wdfwmi.h (включая Wdf.h)
IRQL PASSIVE_LEVEL

См. также раздел

EvtWmiInstanceQueryInstance

EvtWmiInstanceSetInstance

EvtWmiInstanceSetItem

EvtWmiProviderFunctionControl

WDF_WMI_INSTANCE_CONFIG

WdfWmiInstanceCreate