Функция 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. Возможные возвращаемые значения:
Код возврата | Описание |
---|---|
|
Операция успешно выполнена. Подпрограмма возвращает данные WMI в буфере, на который указывает параметр InOutBuffer . Подпрограмма также возвращает размер возвращаемых данных в байтах в расположении памяти, на который указывает параметр OutBufferSize . |
|
Класс WMI не реализован ни в каких драйверах. |
|
Ни одно из драйверов не реализует экземпляр класса WMI со свойством InstanceName , равным значению, указанному в параметре InstanceName . |
|
Класс WMI не содержит метод с идентификатором метода, равным значению MethodId. |
|
Буфер, передаваемый вызывающим объектом в параметре OutBuffer , слишком мал. Подпрограмма возвращает требуемый размер буфера в расположении памяти, на который указывает параметр InOutBufferSize . |
|
Идентификатор 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 |