Freigeben über


IFunctionDiscoveryProvider::InstanceQueryService-Methode (functiondiscoveryprovider.h)

[Funktionsermittlung ist für die Verwendung in den Betriebssystemen verfügbar, die im Abschnitt Anforderungen angegeben sind. Sie kann in nachfolgenden Versionen geändert oder nicht verfügbar sein.]

Erstellt ein anbieterspezifisches COM-Objekt für die Funktion instance. Anbieterautoren können diese Methode implementieren, um zusätzliche Funktionen über das COM-Objekt anzubieten.

Syntax

HRESULT InstanceQueryService(
  [in]  IFunctionInstance *pIFunctionInstance,
  [in]  INT_PTR           iProviderInstanceContext,
  [in]  REFGUID           guidService,
  [in]  REFIID            riid,
  [out] IUnknown          **ppIUnknown
);

Parameter

[in] pIFunctionInstance

Ein Zeiger auf die IFunctionInstance-Schnittstelle .

[in] iProviderInstanceContext

Der der spezifischen Funktion zugeordnete Kontext instance.

[in] guidService

Der eindeutige Bezeichner des Diensts (eine SID). Dies ist die vom Anbieterschreiber definierte Dienst-ID. Ein Beispiel finden Sie unter FunctionDiscoveryServiceIDs.h.

[in] riid

Der eindeutige Bezeichner der Schnittstelle, die der Aufrufer für den Dienst empfangen möchte.

[out] ppIUnknown

Ein Zeiger, der den Schnittstellenzeiger des Diensts empfängt. Der Aufrufer ist für den Aufruf von Release über diesen Schnittstellenzeiger verantwortlich, wenn der Dienst nicht mehr benötigt wird.

Rückgabewert

Mögliche Rückgabewerte sind unter anderem folgendes:

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.
E_NOINTERFACE
Der Anbieter implementiert den von guidService identifizierten Dienst, implementiert jedoch nicht die durch rrid identifizierte Schnittstelle.
E_OUTOFMEMORY
Die -Methode kann den für diesen Vorgang erforderlichen Arbeitsspeicher nicht zuordnen.
E_NOTIMPL
Der Anbieter implementiert nicht die IFunctionInstance::QueryService-Methode , oder der von guidService angegebene Dienstbezeichner stimmt nicht mit dem Dienstbezeichner des Anbieters überein.

Hinweise

InstanceQueryService erstellt oder greift auf die Implementierung des mit guidService identifizierten Diensts zu und gibt die Adresse der Schnittstelle zurück, die von riid im ppv-Argument angegeben wurde. Anbieter können den Dienst implementieren, und diese Methode stellt einen Mechanismus für den Anbieter bereit, um diese Implementierung zur Verfügung zu stellen, anstatt die Erstellung eines neuen Objekts zum Implementieren des Diensts zu erfordern.

Der Anbieter sollte E_NOINTERFACE zurückgeben, wenn guidService nicht zu diesem Anbieter gehört oder die riid-Schnittstelle nicht unterstützt wird. Der Anbieter sollte E_NOTIMPL zurückgeben, wenn er diese Methode einfach nicht implementiert oder die angeforderte SID nicht implementiert.

Jeder Anbieter, der eingebettete Dienste oder Geräte unterstützt, muss den SID_PNPXServiceCollection-Dienst implementieren. Wenn der SID_PNPXServiceCollection-Dienst unterstützt wird, kann der Client IFunctionInstance::QueryService aufrufen, um auf die Informationen und Metadaten zuzugreifen, die den eingebetteten Diensten oder Geräten zugeordnet sind. Beispielsweise implementieren die PnP-X-Anbieter (d. h. der SSDP-Anbieter und der WSD-Anbieter) Unterstützung für den SID_PNPXServiceCollection-Dienst. Nicht alle Anbieter implementieren SID_PNPXServiceCollection Dienstunterstützung.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile functiondiscoveryprovider.h

Weitere Informationen

IFunctionDiscoveryProvider