Metodo Provider::ExecMethod(constCInstance&,constBSTR,CInstance*,CInstance*,long) (provider.h)
[La classe Provider fa parte di WMI Provider Framework, che viene ora considerata in stato finale e non saranno disponibili ulteriori sviluppi, miglioramenti o aggiornamenti per problemi non correlati alla sicurezza che interessano queste librerie. Le API MI devono essere usate per tutti i nuovi sviluppi.
Il metodo ExecMethod viene chiamato da WMI per richiamare un metodo su una classe o un'istanza.
Sintassi
HRESULT ExecMethod(
[ref] const CInstance & cInstance,
const BSTR bstrMethodName,
CInstance *pInParams,
CInstance *pOutParams,
long lFlags
);
Parametri
[ref] cInstance
Proprietà chiave dell'istanza in questione se il client ha chiamato un metodo di istanza. Se il client ha chiamato un metodo statico, Instance contiene un oggetto classe.
bstrMethodName
Nome del metodo richiamato.
pInParams
Puntatore ai parametri di input del metodo.
pOutParams
Puntatore ai parametri di output del metodo.
lFlags
Maschera di bit di flag con informazioni sull'operazione del metodo execute. Questo è il valore specificato dal client nel metodo IWbemServices::ExecMethod . Pochi client usano i parametri lFlags . È possibile ignorare in modo sicuro lFlags nella maggior parte delle implementazioni del provider.
Il flag seguente viene gestito da (e filtrato) da WMI:
- WBEM_FLAG_RETURN_IMMEDIATELY
Valore restituito
L'implementazione predefinita del provider di framework di questo metodo restituisce WBEM_E_PROVIDER_NOT_CAPABLE al metodo chiamante. Il metodo IWbemServices::ExecMethod elenca i valori restituiti più comuni, anche se è possibile scegliere di restituire qualsiasi codice restituito COM.
I valori restituiti per i metodi possono essere uno dei due tipi seguenti:
- HRESULT viene usato per indicare errori di tipo WMI: WBEM_E_OUT_OF_MEMORY, WBEM_E_NOT_FOUND e così via.
- Il valore restituito dal metodo (ad esempio uint32) restituisce il risultato del metodo .
Commenti
WMI chiama ExecMethod quando un client chiama IWbemServices::ExecMethod sulla classe. Pertanto, è necessario implementare ExecMethod se il provider supporta uno o più metodi. L'elenco seguente descrive un'implementazione comune di ExecMethod:
- Determinare il metodo chiamato dal client esaminando il parametro bstrMethodName .
-
Recuperare i parametri di input dal parametro pInParams usando i metodi Get dalla classe CInstance , ad esempio CInstance::GetCHString.
Un metodo può avere parametri di input, parametri di output, parametri di input e output o parametri di input o output.
-
Impostare i parametri di output nel parametro pOutParams usando i metodi Set della classe CInstance , ad esempio CInstance::SetByte o CInstance::SetStringArray.
Oltre a dichiarare le proprietà [out] come specificato nella dichiarazione return, è necessario dichiarare anche il valore restituito per il metodo, come definito nella proprietà ReturnValue . Non è necessario dichiarare un valore restituito se il valore restituito è void.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | provider.h (include FwCommon.h) |
Libreria | FrameDyn.lib |
DLL | FrameDynOS.dll; FrameDyn.dll |