Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[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 |
|---|---|
|
Die Methode wurde erfolgreich abgeschlossen. |
|
Der Anbieter implementiert den von guidService identifizierten Dienst, implementiert jedoch nicht die durch rrid identifizierte Schnittstelle. |
|
Die -Methode kann den für diesen Vorgang erforderlichen Arbeitsspeicher nicht zuordnen. |
|
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 |