Condividi tramite


Metodo CWbemProviderGlue::GetInstancesByQueryAsynch (wbemglue.h)

[La classe CWbemProviderGlue fa parte di WMI Provider Framework, considerata allo stato finale e non sarà disponibile ulteriore sviluppo, 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 GetInstancesByQueryAsynch recupera un elenco di istanze supportate da un determinato provider e che corrispondono a una determinata query. Questo metodo consente al provider di rispondere in modo asincrono restituendo un'istanza alla volta.

Sintassi

HRESULT GetInstancesByQueryAsynch(
  LPCWSTR                    query,
  Provider                   *pRequester,
  LPProviderInstanceCallback pCallback,
  LPCWSTR                    pszNamespace,
  MethodContext              *pMethodContext,
  void                       *pUserData
);

Parametri

query

Query da eseguire.

pRequester

Puntatore dell'istanza della classe fornita dal provider di framework. Questo puntatore "questo" viene passato alla funzione pCallback nel caso in cui la funzione di callback lo richieda.

pCallback

Puntatore a una funzione statica con questo prototipo.

static HRESULT WINAPI Classname::FunctionName(Provider *pProvider,
                                              CInstance *pInstance,
                                              MethodContext *pMethodContext,
                                              void *pUserData );

dove Classname è il nome di una classe derivata dal provider di classi. È un'istanza di questa classe che è il puntatore "this" definito da pRequester.

pszNamespace

Spazio dei nomi per la query. Se NULL, viene usato lo spazio dei nomi predefinito root\cimv2.

pMethodContext

Puntatore al contesto corrente. È necessario fornire un contesto per evitare deadlock. Usare il contesto passato al provider da Provider::EnumerateInstances o Provider::ExecQuery oppure ottenerlo dall'istanza usando CInstance::GetMethodContext. Questo parametro non deve essere NULL.

pUserData

Puntatore ai dati definiti dall'utente passati alla funzione a cui fa riferimento pCallback. Se NULL, non sono presenti dati definiti dall'utente.

Valore restituito

Il metodo restituisce WBEM_S_NO_ERROR se l'operazione ha esito positivo, WBEM_E_OUT_OF_MEMORY se l'operazione non è riuscita a causa della mancanza di memoria o di qualsiasi altro codice di errore HRESULT.

Commenti

Il metodo GetInstancesByQueryAsynch consente ai provider di framework di accedere ai dati da altri provider senza dover effettuare una chiamata API WMI. I provider di framework passano una query a GetInstancesByQueryAsynch, che restituisce le istanze appropriate.

Per motivi di prestazioni, quando si chiama questa funzione, specificare solo le proprietà necessarie (ad esempio, specificare il nome SELECT anziché SELECT *).

Poiché il callback nel sink potrebbe non essere restituito allo stesso livello di autenticazione richiesto dal client, è consigliabile usare la comunicazione semisynchrono anziché asincrona. Se è necessaria la comunicazione asincrona, vedere Chiamata di un metodo.

Per altre informazioni sull'uso di metodi semisynchronously, vedere CWbemProviderGlue::GetInstancesByQuery e Chiamata di un metodo.

Requisiti

   
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione wbemglue.h (include FwCommon.h)
Libreria FrameDyn.lib
DLL FrameDynOS.dll; FrameDyn.dll