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

Подпрограмма IoWMIQueryAllDataMultiple возвращает все блоки данных WMI, реализующие один из наборов классов WMI.

Синтаксис

NTSTATUS IoWMIQueryAllDataMultiple(
  [in]            PVOID  *DataBlockObjectList,
  [in]            ULONG  ObjectCount,
  [in, out]       PULONG InOutBufferSize,
  [out, optional] PVOID  OutBuffer
);

Параметры

[in] DataBlockObjectList

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

[in] ObjectCount

Указывает количество записей в массиве, переданном в параметре DataBlockObjectList .

[in, out] InOutBufferSize

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

[out, optional] OutBuffer

Указатель на буфер, в который подпрограмма возвращает данные WMI. Подпрограмма возвращает последовательность структур WNODE_ALL_DATA переменной величины, по одной для каждого набора возвращаемых блоков данных. Элемент WnodeHeader.Linkage каждой структуры WNODE_ALL_DATA содержит смещение от начала текущего WNODE_ALL_DATA до начала следующего WNODE_ALL_DATA. В последнем блоке в цепочке для WnodeHeader.Linkage задано значение 0. OutBuffer должен указывать на буфер, выделенный из невыгружаемого пула.

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

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

Код возврата Описание
STATUS_SUCCESS
Операция успешно выполнена. Подпрограмма возвращает данные WMI в буфере, на который указывает параметр OutBuffer . Подпрограмма также возвращает размер в байтах возвращаемых данных в расположении памяти, на которое указывает параметр InOutBufferSize .
STATUS_BUFFER_TOO_SMALL
Буфер, переданный вызывающим объектом в параметре OutBuffer , слишком мал. Подпрограмма возвращает требуемый размер буфера в расположении памяти, на которое указывает параметр InOutBufferSize .

Комментарии

IoWMIQueryAllDataMultiple определяет, какие драйверы поддерживают указанные классы WMI, и выдает запрос IRP_MN_QUERY_ALL_DATA каждому такому драйверу.

Если ни один из драйверов не реализует ни один из указанных классов WMI, подпрограмма возвращает STATUS_SUCCESS Она также возвращает нулевое значение в расположении памяти, на которое указывает параметр InOutBufferSize .

Чтобы запросить один класс WMI, используйте IoWMIQueryAllData.

Требования

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

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

IRP_MN_QUERY_ALL_DATA

IoWMIOpenBlock

IoWMIQueryAllData