IoWMIQueryAllDataMultiple-Funktion (wdm.h)

Die IoWMIQueryAllDataMultiple-Routine gibt alle WMI-Datenblöcke zurück, die eine von mehreren 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 zugriffsrecht WMIGUID_QUERY geöffnet werden.

[in] ObjectCount

Gibt die Anzahl der Einträge in dem Array an, das im DataBlockObjectList-Parameter übergeben wird.

[in, out] InOutBufferSize

Zeiger auf einen Speicherspeicherort, der die Größe des Puffers angibt, der im OutBuffer-Parameter übergeben wird. Wenn die Routine erfolgreich ist, aktualisiert sie den Speicherort des Arbeitsspeichers, um die Anzahl der tatsächlich in OutBuffer gespeicherten Bytes anzugeben. Wenn die Routine mit status Code 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 Sequenz von WNODE_ALL_DATA Strukturen mit variabler Größe zurück, eine für jeden Satz zurückgegebener Datenblöcke. Das WnodeHeader.Linkage-Element jeder WNODE_ALL_DATA-Struktur enthält den Offset vom Anfang der aktuellen WNODE_ALL_DATA bis zum Anfang der nächsten WNODE_ALL_DATA. Für den letzten Block in der Kette ist WnodeHeader.Linkage auf 0 festgelegt. OutBuffer muss auf einen Puffer verweisen, der aus einem nicht ausgestellten 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 wurde erfolgreich ausgeführt. Die Routine gibt die WMI-Daten im Puffer zurück, auf den der OutBuffer-Parameter verweist. Die Routine gibt auch die Größe der zurückgegebenen Daten in Bytes im Speicherspeicherort zurück, auf den der InOutBufferSize-Parameter verweist.
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.

Hinweise

IoWMIQueryAllDataMultiple bestimmt, welche Treiber die angegebenen WMI-Klassen unterstützen, und stellt 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 den Wert null im Speicherspeicherort zurück, auf den der InOutBufferSize-Parameter verweist.

Um eine einzelne WMI-Klasse abzufragen, verwenden Sie IoWMIQueryAllData.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows XP und höheren Versionen des Windows-Betriebssystems.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Weitere Informationen

IRP_MN_QUERY_ALL_DATA

IoWMIOpenBlock

IoWMIQueryAllData