IoWMIQueryAllData 函式 (wdm.h)
IoWMIQueryAllData 例程會傳回實作指定 WMI 類別的所有 WMI 數據區塊。
語法
NTSTATUS IoWMIQueryAllData(
[in] PVOID DataBlockObject,
[in, out] PULONG InOutBufferSize,
[out, optional] PVOID OutBuffer
);
參數
[in] DataBlockObject
WMI 數據區塊物件的指標。 呼叫端會使用 ioWMIOpenBlock 例程,開啟 WMI 類別的數據區塊物件。 對象必須以WMIGUID_QUERY訪問許可權開啟。
[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 設為零。 OutBuffer 必須指向從非分頁集區配置的緩衝區。
傳回值
例程會傳回NTSTATUS程式代碼。 可能的傳回值包括:
傳回碼 | 描述 |
---|---|
|
作業成功。 例程會傳回 OutBuffer 參數所指向之緩衝區中的 WMI 數據。 例程也會傳回 InOutBufferSize 參數所指向之內存位置中傳回數據的大小,以位元組為單位。 |
|
沒有驅動程式會實作指定的 WMI 類別。 |
|
OutBuffer 參數中呼叫端傳遞的緩衝區太小。 例程會傳回 InOutBufferSize 參數所指向之內存位置中所需的緩衝區大小。 |
言論
IoWMIQueryAllData 決定哪些驅動程式支援指定的 WMI 類別,並發出每個這類驅動程式的 IRP_MN_QUERY_ALL_DATA 要求。
若要查詢多個 WMI 類別,請使用 IoWMIQueryAllDataMultiple。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Microsoft Windows XP 和更新版本的 Windows作系統中提供。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |