다음을 통해 공유


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 데이터 블록 개체에 대한 포인터 배열에 대한 포인터입니다. 호출자는 IoWMIOpenBlock 루틴을 사용하여 각 WMI 클래스에 대한 데이터 블록 개체를 엽니다. 각 개체는 WMIGUID_QUERY 액세스 권한으로 열어야 합니다.

[in] ObjectCount

DataBlockObjectList 매개 변수에 전달된 배열의 항목 수를 지정합니다.

[in, out] InOutBufferSize

OutBuffer 매개 변수에 전달된 버퍼의 크기를 지정하는 메모리 위치에 대한 포인터입니다. 루틴이 성공하면 메모리 위치를 업데이트하여 OutBuffer실제로 저장된 바이트 수를 지정합니다. 루틴이 상태 코드 STATUS_BUFFER_TOO_SMALL 실패하면 데이터를 반환하는 데 필요한 바이트 수를 반환합니다.

[out, optional] OutBuffer

루틴이 WMI 데이터를 반환하는 버퍼에 대한 포인터입니다. 루틴은 반환된 각 데이터 블록 집합에 대해 하나씩 변수 크기 WNODE_ALL_DATA 구조의 시퀀스를 반환합니다. 각 WNODE_ALL_DATA 구조체의 WnodeHeader.Linkage 멤버에는 현재 WNODE_ALL_DATA 시작부터 다음 WNODE_ALL_DATA시작 부분까지의 오프셋이 포함됩니다. 체인의 마지막 블록에는 WnodeHeader.Linkage 0으로 설정됩니다. OutBuffer 페이지가 없는 풀에서 할당된 버퍼를 가리킵니다.

반환 값

루틴은 NTSTATUS 코드를 반환합니다. 가능한 반환 값은 다음과 같습니다.

반환 코드 묘사
STATUS_SUCCESS
작업이 성공했습니다. 루틴은 OutBuffer 매개 변수가 가리키는 버퍼의 WMI 데이터를 반환합니다. 또한 루틴은 InOutBufferSize 매개 변수가 가리키는 메모리 위치에서 반환된 데이터의 크기(바이트)를 반환합니다.
STATUS_BUFFER_TOO_SMALL
OutBuffer 매개 변수의 호출자가 전달한 버퍼가 너무 작습니다. 루틴은 InOutBufferSize 매개 변수가 가리키는 메모리 위치에서 필요한 버퍼 크기를 반환합니다.

발언

IoWMIQueryAllDataMultiple 지정된 WMI 클래스를 지원하는 드라이버를 결정하고 이러한 모든 드라이버에 IRP_MN_QUERY_ALL_DATA 요청을 실행합니다.

지정된 WMI 클래스를 구현하는 드라이버가 없으면 루틴은 STATUS_SUCCESS 반환합니다. 또한 InOutBufferSize 매개 변수가 가리키는 메모리 위치에 0 값을 반환합니다.

단일 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