IoWMIQuerySingleInstanceMultiple-Funktion (wdm.h)

Die IoWMIQuerySingleInstanceMultiple-Routine gibt alle WMI-Datenblockinstanzen zurück, die die angegebenen WMI-Klassen mit den angegebenen instance-Namen implementieren.

Syntax

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

Parameter

[in] DataBlockObjectList

Zeiger auf ein Array von Zeigern von WMI-Datenblockobjekten. 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] InstanceNames

Zeiger auf ein Array von UNICODE_STRING Strukturen, die instance Namen enthalten. Der n-instanceName im Array entspricht dem Wert der InstanceName-Eigenschaft für die nth WMI-Klasse, die in dem Array angegeben wird, auf das der DataBlockObjectList-Parameter verweist.

[in] ObjectCount

Gibt die Anzahl der Einträge in den Arrays an, die in den Parametern DataBlockObjectList und InstanceNames übergeben werden.

[in, out] InOutBufferSize

Zeiger auf einen Speicherort, der die Größe des Puffers angibt, der im OutBuffer-Parameter übergeben wird. Wenn die Routine erfolgreich ist, wird der Speicherort des Arbeitsspeichers aktualisiert, um die Anzahl der tatsächlich in OutBuffer gespeicherten Bytes anzugeben. Wenn die Routine mit 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_SINGLE_INSTANCE Strukturen mit variabler Größe zurück, eine für jeden Datenblock instance. Der WnodeHeader.Linkage-Member jeder WNODE_SINGLE_INSTANCE-Struktur enthält den Offset vom Anfang des aktuellen WNODE_SINGLE_INSTANCE bis zum Anfang der nächsten WNODE_SINGLE_INSTANCE. Für den letzten Block in der Kette ist WnodeHeader.Linkage auf 0 (null) festgelegt. Jeder eindeutige Datenblock instance entspricht einer einzelnen übereinstimmenden WMI-Klasse und instance Namen. OutBuffer muss auf einen Puffer verweisen, der aus einem nicht auslagerten 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 am Speicherort 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 am Speicherort zurück, auf den der InOutBufferSize-Parameter verweist.

Hinweise

IoWMIQuerySingleInstanceMultiple bestimmt, welche Treiber die angegebenen WMI-Klassen und instance Namen unterstützen können, und gibt eine IRP_MN_QUERY_SINGLE_INSTANCE Anforderung an jeden dieser Treiber aus. Jeder Treiber, der den Datenblock instance mit der übereinstimmenden InstanceName-Eigenschaft exportiert, gibt die entsprechenden Daten zurück.

Wenn keine Treiber eine der angegebenen WMI-Klassen und instance Namen implementieren, gibt die Routine STATUS_SUCCESS zurück. Außerdem wird der Wert 0 (null) am Speicherort zurückgegeben, auf den der InOutBufferSize-Parameter verweist.

Verwenden Sie die IoWMIQuerySingleInstance-Routine, um eine einzelne WMI-Klasse und instance Namen abzufragen. Treiber können die IoWMISetSingleInstance-Routine verwenden, um eine Klasse instance zu aktualisieren.

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_SINGLE_INSTANCE

IoWMIOpenBlock

IoWMIQuerySingleInstance

IoWMISetSingleInstance

UNICODE_STRING