Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
[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 |
|---|---|
|
Metodo completato correttamente. I risultati vengono restituiti in modo sincrono in ppIFunctonInstanceCollecton. |
|
Il metodo non è in grado di allocare la memoria necessaria per eseguire questa operazione. |
|
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 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:
- Recupera l'oggetto raccolta dell'istanza della funzione.
- Esegue una query sul provider della categoria passata in IFunctionDiscovery::CreateInstanceCollectionQuery.
- Recupera il provider di categorie.
- Esegue una query sul provider di categorie usando i dati della sottocategoria per generare la raccolta usando vincoli di query.
- Avvia il meccanismo di notifica degli aggiornamenti se l'indirizzo della routine di callback IFunctionDiscoveryNotification del programma client viene fornito a IFunctionDiscovery::CreateInstanceCollectionQuery.
- Memorizza nella cache i dati della raccolta e restituisce.
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 |