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.]
Crea un oggetto COM specifico del provider per l'istanza della funzione. I writer del provider possono implementare questo metodo per offrire funzionalità aggiuntive tramite l'oggetto COM.
Sintassi
HRESULT InstanceQueryService(
[in] IFunctionInstance *pIFunctionInstance,
[in] INT_PTR iProviderInstanceContext,
[in] REFGUID guidService,
[in] REFIID riid,
[out] IUnknown **ppIUnknown
);
Parametri
[in] pIFunctionInstance
Puntatore all'interfaccia IFunctionInstance .
[in] iProviderInstanceContext
Contesto associato all'istanza della funzione specifica.
[in] guidService
Identificatore univoco del servizio (SID). Si tratta dell'ID servizio definito dal writer del provider. Per un esempio, vedere FunctionDiscoveryServiceIDs.h.
[in] riid
Identificatore univoco dell'interfaccia che il chiamante desidera ricevere per il servizio.
[out] ppIUnknown
Puntatore che riceve il puntatore di interfaccia del servizio. Il chiamante è responsabile della chiamata a Release tramite questo puntatore di interfaccia quando il servizio non è più necessario.
Valore restituito
I valori restituiti possibili includono, ma non sono limitati ai valori seguenti.
| Codice restituito | Descrizione |
|---|---|
|
Metodo completato correttamente. |
|
Il provider implementa il servizio identificato da guidService ma non implementa l'interfaccia identificata da rrid. |
|
Il metodo non è in grado di allocare la memoria necessaria per eseguire questa operazione. |
|
Il provider non implementa il metodo IFunctionInstance::QueryService o l'identificatore del servizio specificato da guidService non corrisponde all'identificatore del servizio del provider. |
Commenti
InstanceQueryService crea o accede all'implementazione del servizio identificato con guidService, restituendo l'indirizzo dell'interfaccia specificata da riid nell'argomento ppv . I provider possono implementare il servizio e questo metodo fornisce al provider un meccanismo per fornire questa implementazione, quindi richiedendo la creazione di un nuovo oggetto per implementare il servizio.
Il provider deve restituire E_NOINTERFACE se il guidService non appartiene a questo provider o l'interfaccia riid non è supportata. Il provider deve restituire E_NOTIMPL se semplicemente non implementa questo metodo o non implementa il SID richiesto.
Qualsiasi provider che supporta servizi o dispositivi incorporati deve implementare il servizio SID_PNPXServiceCollection. Se il servizio SID_PNPXServiceCollection è supportato, il client può chiamare IFunctionInstance::QueryService per accedere alle informazioni e ai metadati associati ai servizi o ai dispositivi incorporati. Ad esempio, i provider PnP-X (ovvero il provider SSDP e il provider WSD) implementano il supporto per il servizio SID_PNPXServiceCollection. Non tutti i provider implementano il supporto del servizio SID_PNPXServiceCollection.
Requisiti
| Client minimo supportato | Windows Vista [solo app desktop] |
| Server minimo supportato | Windows Server 2008 [solo app desktop] |
| Piattaforma di destinazione | Windows |
| Intestazione | functiondiscoveryprovider.h |