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 |
---|---|
|
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. |
|
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 |