Condividi tramite


Metodo IWbemObjectSink::Indicate (wbemcli.h)

Il metodo Indicate viene chiamato da un'origine per fornire una notifica. Wmi chiama in genere l'implementazione client di questa interfaccia dopo che il client esegue uno dei metodi asincroni di IWbemServices. In altri casi, vari tipi di provider chiamano un'implementazione esportata da WMI per recapitare gli eventi. Pertanto, il codice client potrebbe dover implementare questa interfaccia in alcuni casi e usare l'implementazione di un componente diverso in altri casi.

Usare questa interfaccia e questo metodo insieme ai metodi asincroni dell'interfaccia IWbemServices .

I client e i provider devono implementare questa interfaccia per ricevere notifiche o per eseguire i metodi asincroni di IWbemServices. Per altre informazioni, vedere Chiamata di un metodo.

Sintassi

HRESULT Indicate(
  [in] long             lObjectCount,
  [in] IWbemClassObject **apObjArray
);

Parametri

[in] lObjectCount

Numero di oggetti nella matrice di puntatori seguente.

[in] apObjArray

Matrice di puntatori alle interfacce IWbemClassObject . La memoria della matrice stessa è di sola lettura ed è di proprietà del chiamante del metodo . Poiché si tratta di un parametro in , l'implementazione ha la possibilità di chiamare IWbemClassObject::AddRef su qualsiasi puntatore a oggetti nella matrice e tenerlo premuto prima di restituirlo se gli oggetti verranno usati dopo che il metodo è stato restituito, in conformità alle regole COM. Se gli oggetti vengono usati solo per la durata della chiamata Indicare , non è necessario chiamare AddRef su ogni puntatore a oggetti.

Valore restituito

Questo metodo restituisce un valore HRESULT che indica lo stato della chiamata al metodo. L'elenco seguente elenca il valore contenuto in hrESULT.

Commenti

Quando si implementa un sink di sottoscrizione di eventi (IWbemObjectSink o IWbemEventSink), non chiamare IN WMI dall'interno del metodo Indicate nell'oggetto sink. Ad esempio, la chiamata a IWbemServices::CancelAsyncCall dall'interno di un'implementazione di Indicate può interferire con lo stato WMI. Per annullare una sottoscrizione di eventi, impostare un flag e chiamare IWbemServices::CancelAsyncCall da un altro thread o oggetto. Per le implementazioni non correlate a un sink di eventi, ad esempio oggetti, enumerazioni e recupero di query, è possibile richiamare in WMI.

Le implementazioni sink devono elaborare la notifica degli eventi entro 100 MSEC perché il thread WMI che recapita la notifica degli eventi non può eseguire altre operazioni finché l'oggetto sink non ha completato l'elaborazione. Se la notifica richiede una grande quantità di elaborazione, il sink può usare una coda interna per un altro thread per gestire l'elaborazione.

Quando un provider di eventi chiama Indicate per fornire un evento, la chiamata può avere esito negativo con WBEM_E_SERVER_TOO_BUSY. Il provider può scegliere di rispondere a questo messaggio riattivando l'evento.

Nota Poiché il callback al sink potrebbe non essere restituito allo stesso livello di autenticazione richiesto dal client, è consigliabile usare la comunicazione semiincrona anziché la comunicazione asincrona. Per altre informazioni, vedere Chiamata di un metodo.
 

Requisiti

   
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione wbemcli.h (include Wbemidl.h)
Libreria Wbemuuid.lib
DLL Fastprox.dll

Vedi anche

IWbemObjectSink

IWbemObjectSink::SetStatus

IWbemObjectSinkEx

IWbemServices::ExecQueryAsync