Condividi tramite


Metodo IFunctionInstanceCollectionQuery::Execute (functiondiscoveryapi.h)

[L'individuazione delle funzioni è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. Potrebbe essere modificato o non disponibile nelle versioni successive.]

Esegue la query definita da IFunctionDiscovery::CreateInstanceCollectionQuery.

Sintassi

HRESULT Execute(
  [out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);

Parametri

[out] ppIFunctionInstanceCollection

Puntatore a un puntatore all'interfaccia IFunctionInstanceCollection che riceve la raccolta di istanze della funzione richiesta.

Valore restituito

I valori restituiti possibili includono, ma non sono limitati ai valori seguenti.

Codice restituito Descrizione
S_OK
Metodo completato correttamente. I risultati vengono restituiti in modo sincrono in ppIFunctonInstanceCollecton.
E_OUTOFMEMORY
Il metodo non è in grado di allocare la memoria necessaria per eseguire questa operazione.
E_PENDING
Alcuni dei risultati verranno restituiti dalla notifica asincrona. Per ulteriori informazioni, vedere la sezione Osservazioni.
 

Una query predefinita è una query di una categoria a più livelli. Quando viene eseguita una query predefinita, ogni provider che restituisce un'istanza di funzione restituisce anche un valore HRESULT. I valori HRESULT del provider vengono aggregati e il valore restituito dal metodo Execute riflette questi risultati aggregati. I risultati vengono aggregati come segue:

  • Se tutti i provider restituiscono S_OK, Execute restituisce S_OK.
  • Se almeno un provider restituisce E_PENDING e tutti gli altri provider restituiscono S_OK o E_PENDING, Esegui restituisce E_PENDING.
  • Se tutti i provider restituiscono un valore di errore, ovvero un valore diverso da S_OK o E_PENDING, Execute restituisce il valore di errore restituito dal provider di rete su cui è stata eseguita l'ultima query. Inoltre, se la routine di callback IFunctionDiscoveryNotification del client è stata fornita a IFunctionDiscovery::CreateInstanceCollectionQuery, viene inviata una notifica OnError per ogni provider. Ogni notifica OnError contiene il valore HRESULT restituito dal provider.
  • Se almeno un provider restituisce un valore di errore e tutti gli altri provider restituiscono S_OK, Execute restituisce S_OK. Le notifiche OnError vengono inviate come descritto in precedenza.
  • Se almeno un provider restituisce un valore di errore e almeno un provider restituisce E_PENDING, Execute restituisce E_PENDING. Le notifiche OnError vengono inviate come descritto in precedenza.
Quando Execute restituisce S_OK, ppIFunctionInstanceCollection contiene i risultati della query. Se viene fornita un'interfaccia IFunctionDiscoveryNotification al metodo CreateInstanceCollectionQuery di IFunctionDiscovery, le modifiche ai risultati verranno comunicate tramite tale interfaccia.

Quando Execute restituisce E_PENDING, il set di risultati verrà restituito in modo asincrono tramite l'interfaccia IFunctionDiscoveryNotification fornita al metodo CreateInstanceCollectionQuery di IFunctionDiscovery. ppIFunctionInstanceCollection può essere NULL o può contenere un set di risultati parziale. L'enumerazione viene completata una volta chiamato il metodo OnEvent di IFunctionDiscoveryNotification con FD_EVENTID_SEARCHCOMPLETE. Dopo la ricezione dell'evento FD_EVENTID_SEARCHCOMPLETE , vengono aggiornate le notifiche aggiuntive ai risultati.

Commenti

Questo metodo deve essere richiamato dal programma client prima che tutti i dati possano essere recuperati dall'oggetto query. Quando viene chiamato, questo metodo esegue le operazioni seguenti:

  1. Recupera l'oggetto raccolta dell'istanza della funzione.
  2. Esegue una query sul provider della categoria passata in IFunctionDiscovery::CreateInstanceCollectionQuery.
  3. Recupera il provider di categorie.
  4. Esegue una query sul provider di categorie usando i dati della sottocategoria per generare la raccolta usando vincoli di query.
  5. Avvia il meccanismo di notifica degli aggiornamenti se l'indirizzo della routine di callback IFunctionDiscoveryNotification del programma client viene fornito a IFunctionDiscovery::CreateInstanceCollectionQuery.
  6. Memorizza nella cache i dati della raccolta e restituisce.
I provider di rete di Individuazione funzioni restituiscono solo istanze di funzione tramite l'interfaccia IFunctionDiscoveryNotification . Non restituiscono istanze di funzione direttamente quando questo metodo viene richiamato. Esegui avvia invece semplicemente un'operazione di recupero completamente asincrona e restituisce E_PENDING per indicare che i risultati verranno restituiti in modo asincrono. Le notifiche devono essere usate per recuperare le istanze di funzione dai provider di rete di Individuazione funzioni.

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione functiondiscoveryapi.h
DLL FunDisc.dll

Vedi anche

Query di individuazione delle funzioni

IFunctionInstanceCollectionQuery