Condividi tramite


Metodo IFunctionInstanceQuery::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::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
S_OK
Metodo completato correttamente.
E_INVALIDARG
Il parametro ppIFunctionInstance è NULL.
E_OUTOFMEMORY
Il metodo non è in grado di allocare la memoria necessaria per eseguire questa operazione.
E_PENDING
I risultati da restituire da un provider verranno visualizzati tramite notifica asincrona.
HRESULT_FROM_WIN32(ERROR_OBJECT_NOT_FOUND)
0x800710d8
L'istanza della funzione rappresentata dall'ID specificato non esiste nel computer.
HRESULT_FROM_WIN32(ERROR_KEY_DELETED)
0x800703fa
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.
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
0x80070002
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:

  1. Recupera l'istanza della funzione.
  2. Avvia il meccanismo di notifica degli aggiornamenti se l'indirizzo della routine di callback IFunctionDiscoveryNotification del programma client viene fornito a IFunctionDiscovery::CreateInstanceQuery.
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.

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

Vedi anche

Query di individuazione delle funzioni

IFunctionInstanceQuery