Freigeben über


IoWMIQueryAllDataMultiple-Funktion (wdm.h)

Die IoWMIQueryAllDataMultiple Routine gibt alle WMI-Datenblöcke zurück, die eine Reihe von WMI-Klassen implementieren.

Syntax

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

Parameter

[in] DataBlockObjectList

Zeiger auf ein Array von Zeigern auf WMI-Datenblockobjekte. Der Aufrufer öffnet ein Datenblockobjekt für jede WMI-Klasse mit der IoWMIOpenBlock Routine. Jedes Objekt muss mit dem WMIGUID_QUERY Zugriffsrecht geöffnet werden.

[in] ObjectCount

Gibt die Anzahl der Einträge im Array an, die im DataBlockObjectList Parameter übergeben werden.

[in, out] InOutBufferSize

Zeigen Sie auf einen Speicherspeicherort, der die Größe des Puffers angibt, der im OutBuffer Parameter übergeben wird. Wenn die Routine erfolgreich ist, aktualisiert sie den Speicherspeicherort, um die Anzahl der Bytes anzugeben, die tatsächlich in OutBuffer-gespeichert sind. Wenn die Routine mit dem Statuscode von STATUS_BUFFER_TOO_SMALL fehlschlägt, gibt sie die Anzahl der Bytes zurück, die zum Zurückgeben der Daten erforderlich sind.

[out, optional] OutBuffer

Zeiger auf den Puffer, in dem die Routine die WMI-Daten zurückgibt. Die Routine gibt eine Abfolge variabler WNODE_ALL_DATA Strukturen zurück, eine für jeden Satz zurückgegebener Datenblöcke. Das WnodeHeader.Linkage Member jeder WNODE_ALL_DATA Struktur enthält den Offset vom Anfang des aktuellen WNODE_ALL_DATA bis zum Anfang der nächsten WNODE_ALL_DATA. Der letzte Block in der Kette hat WnodeHeader.Linkage auf Null festgelegt. OutBuffer- muss auf einen Puffer verweisen, der aus einem nicht ausgelagerten Pool zugeordnet ist.

Rückgabewert

Die Routine gibt einen NTSTATUS-Code zurück. Mögliche Rückgabewerte sind:

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Vorgang war erfolgreich. Die Routine gibt die WMI-Daten im Puffer zurück, auf die der OutBuffer Parameter verweist. Die Routine gibt auch die Größe der zurückgegebenen Daten an der Speicherposition in Byte zurück, auf die vom InOutBufferSize Parameter verwiesen wird.
STATUS_BUFFER_TOO_SMALL
Der vom Aufrufer im OutBuffer Parameter übergebene Puffer ist zu klein. Die Routine gibt die erforderliche Puffergröße im Speicherspeicherort zurück, auf den der InOutBufferSize Parameter verweist.

Bemerkungen

IoWMIQueryAllDataMultiple bestimmt, welche Treiber die angegebenen WMI-Klassen unterstützen, und gibt eine IRP_MN_QUERY_ALL_DATA Anforderung an jeden solchen Treiber aus.

Wenn keine Treiber eine der angegebenen WMI-Klassen implementieren, gibt die Routine STATUS_SUCCESS Es gibt auch einen Wert von Null im Speicherspeicherort zurück, auf den der InOutBufferSize Parameter verweist.

Verwenden Sie IoWMIQueryAllData-, um eine einzelne WMI-Klasse abzufragen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows XP und höheren Versionen des Windows-Betriebssystems.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= APC_LEVEL

Siehe auch

IRP_MN_QUERY_ALL_DATA

IoWMIOpenBlock-

IoWMIQueryAllData-