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


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

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

Синтаксис

NTSTATUS IoWMIQueryAllData(
  [in]            PVOID  DataBlockObject,
  [in, out]       PULONG InOutBufferSize,
  [out, optional] PVOID  OutBuffer
);

Параметры

[in] DataBlockObject

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

[in, out] InOutBufferSize

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

[out, optional] OutBuffer

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

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

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

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

Замечания

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

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

Требования

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

См. также

IRP_MN_QUERY_ALL_DATA

IoWMIOpenBlock

IoWMIQueryAllDataMultiple