ioWMIQuerySingleInstanceMultiple 函式 (wdm.h)

IoWMIQuerySingleInstanceMultiple 例程會傳回所有使用指定實例名稱實作指定 WMI 類別的 WMI 數據區塊實例。

語法

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

參數

[in] DataBlockObjectList

WMI 數據區塊物件的指標陣列指標指標。 呼叫端會使用 IoWMIOpenBlock 例程開啟每個WMI類別的數據區塊物件。 每個物件都必須以WMIGUID_QUERY訪問許可權開啟。

[in] InstanceNames

包含實例名稱 之UNICODE_STRING 結構的陣列指標。 陣列中第 n個實例名稱會對應至 DataBlockObjectList 參數所指向之陣列中第 n個 WMI 類別的 InstanceName 屬性值。

[in] ObjectCount

指定 在 DataBlockObjectListInstanceNames 參數中傳遞之陣列中的項目數。

[in, out] InOutBufferSize

記憶體位置的指標,指定 在 OutBuffer 參數中傳遞之緩衝區的大小。 如果例程成功,它會更新記憶體位置,以指定實際儲存在 OutBuffer 中的位元元組數目。 如果例程因STATUS_BUFFER_TOO_SMALL而失敗,它會傳回傳回數據所需的位元元組數目。

[out, optional] OutBuffer

例程傳回 WMI 數據的緩衝區指標。 例程會傳回一連串可變大小的 WNODE_SINGLE_INSTANCE 結構,每個數據區塊實例各一個。 每個WNODE_SINGLE_INSTANCE結構的 WnodeHeader.Linkage 成員都包含從目前WNODE_SINGLE_INSTANCE的開頭到下一個WNODE_SINGLE_INSTANCE開頭的位移。 鏈結中最後一個區塊的 WnodeHeader.Linkage 設定為零。 每個相異數據區塊實例都會對應至單一相符的 WMI 類別和實例名稱。 OutBuffer 必須指向從非分頁集區配置的緩衝區。

傳回值

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

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

備註

IoWMIQuerySingleInstanceMultiple 會決定哪些驅動程式可能支援指定的 WMI 類別和實例名稱,並發出每個這類驅動程式 的IRP_MN_QUERY_SINGLE_INSTANCE 要求。 每個匯出具有相符 InstanceName 屬性之數據區塊實例的驅動程式都會傳回適當的數據。

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

若要查詢單一 WMI 類別和實例名稱,請使用 IoWMIQuerySingleInstance 例程。 驅動程式可以使用 IoWMISetSingleInstance 例程來更新類別實例。

規格需求

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

另請參閱

IRP_MN_QUERY_SINGLE_INSTANCE

IoWMIOpenBlock

IoWMIQuerySingleInstance

IoWMISetSingleInstance

UNICODE_STRING