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::CreateInstanceQuery.
Sintassi
HRESULT Execute(
[out] IFunctionInstance **ppIFunctionInstance
);
Parametri
[out] ppIFunctionInstance
Puntatore a un puntatore all'interfaccia IFunctionInstance che riceve l'istanza della funzione richiesta.
Valore restituito
I valori restituiti possibili includono, ma non sono limitati ai valori seguenti.
| Codice/valore restituito | Descrizione |
|---|---|
|
Metodo completato correttamente. |
|
Il parametro ppIFunctionInstance è NULL. |
|
Il metodo non è in grado di allocare la memoria necessaria per eseguire questa operazione. |
|
I risultati da restituire da un provider verranno visualizzati tramite notifica asincrona. |
|
L'istanza della funzione rappresentata dall'ID specificato non esiste nel computer. |
|
Impossibile restituire l'istanza della funzione perché la chiave corrispondente all'istanza della funzione è stata eliminata da un altro processo. Questo errore viene restituito dal provider del Registro di sistema se una chiave viene eliminata durante l'elaborazione delle query. |
|
Impossibile restituire l'istanza della funzione perché non è stato possibile trovare la chiave corrispondente all'istanza della funzione. Questo errore viene restituito dal provider del Registro di sistema quando il provider non è riuscito a trovare istanze corrispondenti per una query di istanza. |
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, Execute restituisce E_PENDING.
- Se tutti i provider restituiscono un valore di errore, ovvero un valore diverso da S_OK o E_PENDING, Esegui 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.
Commenti
Questo metodo deve essere richiamato dal programma client per recuperare i dati dall'oggetto query. Quando viene chiamato, questo metodo esegue le operazioni seguenti:
- Recupera l'istanza della funzione.
- Avvia il meccanismo di notifica degli aggiornamenti se l'indirizzo della routine di callback IFunctionDiscoveryNotification del programma client viene fornito a IFunctionDiscovery::CreateInstanceQuery.
Se Execute viene chiamato due volte sullo stesso oggetto query, la prima query viene terminata prima dell'esecuzione della seconda query.
Requisiti
| Requisito | Valore |
|---|---|
| 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 |