Freigeben über


IoWMIExecuteMethod-Funktion (wdm.h)

Die IoWMIExecuteMethod-Routine führt eine WMI-Klassenmethode für den angegebenen WMI-Datenblock instance aus.

Syntax

NTSTATUS IoWMIExecuteMethod(
  [in]      PVOID           DataBlockObject,
  [in]      PUNICODE_STRING InstanceName,
  [in]      ULONG           MethodId,
  [in]      ULONG           InBufferSize,
  [in, out] PULONG          OutBufferSize,
  [in, out] PUCHAR          InOutBuffer
);

Parameter

[in] DataBlockObject

Zeiger auf ein WMI-Datenblockobjekt. Der Aufrufer öffnet das Datenblockobjekt für die WMI-Klasse mit IoWMIOpenBlock. Das Objekt muss mit dem zugriffsrecht WMIGUID_EXECUTE geöffnet werden.

[in] InstanceName

Gibt den Namen des instance des Datenblocks an. Dieser Wert entspricht dem Wert der InstanceName-Eigenschaft für den Block.

[in] MethodId

Gibt die Methodenelement-ID für die festzulegende Methode an. Der Wert dieses Parameters entspricht dem Wert, der im WmiMethodId-Qualifizierer für die -Methode deklariert ist.

[in] InBufferSize

Gibt die Größe der Eingabedaten für die -Methode in Bytes an. Die tatsächlichen Eingabedaten werden im Puffer übergeben, auf den der InOutBuffer-Parameter verweist.

[in, out] OutBufferSize

Zeiger auf eine ULONG, die die erwartete Größe (Bytes) der von der -Methode ausgegebenen Daten angibt. Die tatsächlichen Ausgabedaten werden im Puffer zurückgegeben, auf den der InOutBuffer-Parameter verweist. Wenn die Routine erfolgreich ist, wird der Speicherort des Arbeitsspeichers aktualisiert, um die Anzahl der tatsächlich in InOutBuffer 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.

[in, out] InOutBuffer

Zeiger auf den Puffer, an den der Aufrufer die Eingabedaten der WMI-Methode übergibt und die Ausgabedaten der WMI-Methode empfängt.

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 InOutBuffer-Parameter verweist. Die Routine gibt auch die Größe der zurückgegebenen Daten am Speicherort zurück, auf den der OutBufferSize-Parameter verweist.
STATUS_WMI_GUID_NOT_FOUND
Keine Treiber implementieren die WMI-Klasse.
STATUS_WMI_INSTANCE_NOT_FOUND
Kein Treiber implementiert eine instance der WMI-Klasse mit der InstanceName-Eigenschaft, die dem im InstanceName-Parameter angegebenen Wert entspricht.
STATUS_WMI_ITEMID_NOT_FOUND
Die WMI-Klasse enthält keine Methode, deren Methoden-ID dem Wert von MethodId entspricht.
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.
STATUS_WMI_GUID_DISCONNECTED
Die WMI-GUID ist nicht mehr verfügbar oder war nie verfügbar.

Hinweise

IoWMIExecuteMethod bestimmt, welche Treiber die angegebene WMI-Klasse und instance Namen unterstützen. An jeden dieser Treiber wird eine IRP_MN_EXECUTE_METHOD-Anforderung gestellt. Der Treiber, der den Datenblock exportiert, instance mit der übereinstimmenden InstanceName-Eigenschaft exportiert, führt dann die angegebene WMI-Methode aus.

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_EXECUTE_METHOD

IoWMIOpenBlock