Provider::ExecMethod(ParsedObjectPath*,BSTR,long,CInstance*,CInstance*,MethodContext*)-Methode (provider.h)
[Die Provider-Klasse ist Teil des WMI-Provider-Frameworks, das nun als endgültig betrachtet wird, und es sind keine weiteren Entwicklungen, Verbesserungen oder Updates für nicht sicherheitsrelevante Probleme verfügbar, die diese Bibliotheken betreffen. Die MI-APIs sollten für alle Neuentwicklungen verwendet werden.]
Die ExecMethod-Methode wird von WMI aufgerufen, um eine Methode für eine Klasse oder instance aufzurufen.
Syntax
HRESULT ExecMethod(
ParsedObjectPath *pParsedObjectPath,
BSTR bstrMethodName,
long lFlags,
CInstance *pInParams,
CInstance *pOutParams,
MethodContext *pContext
);
Parameter
pParsedObjectPath
TBD
bstrMethodName
Name der methode, die aufgerufen wird.
lFlags
Bitmaske von Flags mit Informationen zum Vorgang der Ausführungsmethode. Dies ist der vom Client in der IWbemServices::ExecMethod-Methode angegebene Wert. Nur wenige Clients verwenden die lFlags-Parameter . Sie können lFlags in den meisten Anbieterimplementierungen sicher ignorieren.
Das folgende Flag wird von WMI behandelt (und herausgefiltert):
- WBEM_FLAG_RETURN_IMMEDIATELY
pInParams
Zeiger auf die Methodeneingabeparameter.
pOutParams
Zeiger auf die Methodenausgabeparameter.
pContext
TBD
Rückgabewert
Die Standardframeworkanbieterimplementierung dieser Methode gibt WBEM_E_PROVIDER_NOT_CAPABLE an die aufrufende Methode zurück. Die IWbemServices::ExecMethod-Methode listet die häufigsten Rückgabewerte auf, obwohl Sie auswählen können, dass jeder COM-Rückgabecode zurückgegeben werden soll.
Rückgabewerte für Methoden können einer von zwei Typen sein:
- HRESULT wird verwendet, um WMI-Typfehler anzugeben: WBEM_E_OUT_OF_MEMORY, WBEM_E_NOT_FOUND usw.
- Der Rückgabewert der -Methode (z . B. uint32) gibt das Ergebnis der -Methode zurück.
Hinweise
WMI ruft ExecMethod auf, wenn ein Client IWbemServices::ExecMethod für Ihre Klasse aufruft. Daher müssen Sie ExecMethod implementieren, wenn Ihr Anbieter mindestens eine Methode unterstützt. In der folgenden Liste wird eine gängige Implementierung von ExecMethod beschrieben:
- Ermitteln Sie, welche Methode der Client aufgerufen hat, indem Sie den Parameter bstrMethodName untersuchen.
-
Rufen Sie die Eingabeparameter aus dem pInParams-Parameter mithilfe der Get-Methoden der CInstance-Klasse ab, z. B. CInstance::GetCHString.
Eine Methode kann Eingabeparameter, Ausgabeparameter, Eingabe- und Ausgabeparameter oder keine Eingabe- oder Ausgabeparameter aufweisen.
-
Legen Sie die Ausgabeparameter im pOutParams-Parameter mithilfe der Set-Methoden der CInstance-Klasse fest, z. B . CInstance::SetByte oder CInstance::SetStringArray.
Zusätzlich zum Deklarieren der [out]-Eigenschaften wie in der Rückgabedeklaration angegeben, müssen Sie auch den Rückgabewert für die Methode deklarieren, wie in der ReturnValue-Eigenschaft definiert. Sie müssen keinen Rückgabewert deklarieren, wenn der Rückgabewert ungültig ist.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | provider.h (einschließlich FwCommon.h) |
Bibliothek | FrameDyn.lib |
DLL | FrameDynOS.dll; FrameDyn.dll |