Функция IoWMIExecuteMethod (wdm.h)

Подпрограмма IoWMIExecuteMethod запускает метод класса WMI в указанном экземпляре блока данных WMI.

Синтаксис

NTSTATUS IoWMIExecuteMethod(
  [in]      PVOID           DataBlockObject,
  [in]      PUNICODE_STRING InstanceName,
  [in]      ULONG           MethodId,
  [in]      ULONG           InBufferSize,
  [in, out] PULONG          OutBufferSize,
  [in, out] PUCHAR          InOutBuffer
);

Параметры

[in] DataBlockObject

Указатель на объект блока данных WMI. Вызывающий объект открывает объект блока данных для класса WMI с помощью IoWMIOpenBlock. Объект должен быть открыт с правом доступа WMIGUID_EXECUTE.

[in] InstanceName

Указывает имя экземпляра блока данных. Это значение соответствует значению свойства InstanceName для блока.

[in] MethodId

Указывает идентификатор элемента метода для заданного метода. Значение этого параметра соответствует значению, объявленному в квалификаторе WmiMethodId для метода .

[in] InBufferSize

Задает размер входных данных метода (в байтах). Фактические входные данные передаются в буфер, на который указывает параметр InOutBuffer .

[in, out] OutBufferSize

Указатель на ULONG, указывающий ожидаемый размер (байты) выходных данных методом . Фактические выходные данные возвращаются в буфер, на который указывает параметр InOutBuffer . Если подпрограмма выполняется успешно, она обновляет расположение памяти, указывая количество байтов, фактически хранящихся в InOutBuffer. Если подпрограмма завершается сбоем с STATUS_BUFFER_TOO_SMALL, она возвращает количество байтов, необходимое для возврата данных.

[in, out] InOutBuffer

Указатель на буфер, в котором вызывающий объект передает входные данные метода WMI и получает выходные данные метода WMI.

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

Подпрограмма возвращает код NTSTATUS. Возможные возвращаемые значения:

Код возврата Описание
STATUS_SUCCESS
Операция успешно выполнена. Подпрограмма возвращает данные WMI в буфере, на который указывает параметр InOutBuffer . Подпрограмма также возвращает размер возвращаемых данных в байтах в расположении памяти, на который указывает параметр OutBufferSize .
STATUS_WMI_GUID_NOT_FOUND
Класс WMI не реализован ни в каких драйверах.
STATUS_WMI_INSTANCE_NOT_FOUND
Ни одно из драйверов не реализует экземпляр класса WMI со свойством InstanceName , равным значению, указанному в параметре InstanceName .
STATUS_WMI_ITEMID_NOT_FOUND
Класс WMI не содержит метод с идентификатором метода, равным значению MethodId.
STATUS_BUFFER_TOO_SMALL
Буфер, передаваемый вызывающим объектом в параметре OutBuffer , слишком мал. Подпрограмма возвращает требуемый размер буфера в расположении памяти, на который указывает параметр InOutBufferSize .
STATUS_WMI_GUID_DISCONNECTED
Идентификатор GUID WMI больше недоступен или недоступен.

Комментарии

IoWMIExecuteMethod определяет, какие драйверы могут поддерживать указанный класс WMI и имя экземпляра. Он отправляет запрос IRP_MN_EXECUTE_METHOD каждому такому драйверу. Драйвер, который экспортирует экземпляр блока данных с соответствующим свойством InstanceName , затем запускает указанный метод WMI.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows XP и более поздних версиях операционной системы Windows.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

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

IRP_MN_EXECUTE_METHOD

IoWMIOpenBlock