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 設定為零。 OutBuffer 必須指向從非分頁集區配置的緩衝區。

傳回值

例程會傳回NTSTATUS程式代碼。 可能的傳回值包括:

傳回碼 Description
STATUS_SUCCESS
作業成功。 例程會傳回 OutBuffer 參數所指向之緩衝區中的 WMI 數據。 例程也會傳回 InOutBufferSize 參數所指向記憶體位置中傳回數據的大小,以位元組為單位。
STATUS_BUFFER_TOO_SMALL
OutBuffer 參數中呼叫端傳遞的緩衝區太小。 例程會傳回 InOutBufferSize 參數所指向記憶體位置中所需的緩衝區大小。

備註

IoWMIQueryAllDataMultiple 會決定哪些驅動程式支援指定的 WMI 類別,併發出每個這類驅動程式 的IRP_MN_QUERY_ALL_DATA 要求。

如果沒有驅動程序實作任何指定的 WMI 類別,例程會傳回STATUS_SUCCESS它也會傳回 InOutBufferSize 參數所指向的記憶體位置中零的值。

若要查詢單一 WMI 類別,請使用 IoWMIQueryAllData

規格需求

需求
最低支援的用戶端 可在 Windows XP 和更新版本的 Windows 作業系統中使用。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

IRP_MN_QUERY_ALL_DATA

IoWMIOpenBlock

IoWMIQueryAllData