Condividi tramite


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:

  1. Determinare il metodo chiamato dal client esaminando il parametro bstrMethodName .
  2. 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.

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

Per altre informazioni, vedere IWbemServices::ExecMethod.

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