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


функция обратного вызова 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(состояние) равно 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 (include Wdf.h)
IRQL PASSIVE_LEVEL

См. также

EvtWmiInstanceQueryInstance

EvtWmiInstanceSetInstance

EvtWmiInstanceSetItem

EvtWmiProviderFunctionControl

WDF_WMI_INSTANCE_CONFIG

WdfWmiInstanceCreate