Freigeben über


IFunctionDiscoveryProvider::Query-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.]

Ruft eine Auflistung von Funktionsinstanzen ab, die die angegebenen Einschränkungen erfüllen.

Syntax

HRESULT Query(
  [in]  IFunctionDiscoveryProviderQuery *pIFunctionDiscoveryProviderQuery,
  [out] IFunctionInstanceCollection     **ppIFunctionInstanceCollection
);

Parameter

[in] pIFunctionDiscoveryProviderQuery

Ein Zeiger auf eine IFunctionDiscoveryProviderQuery-Schnittstelle , die Parameter enthält, die die Abfragekriterien definieren.

[out] ppIFunctionInstanceCollection

Ein Zeiger auf eine IFunctionInstanceCollection-Schnittstelle , die der Anbieter verwenden sollte, um Funktionsinstanzen synchron als Reaktion auf die angegebene Abfrage zurückzugeben.

Wenn Sie die Query-Methode implementieren, können Sie diesen Parameter auf NULL festlegen, wenn Ihr Anbieter Benachrichtigungen unterstützt. Das heißt, Ihr Anbieter gibt Ergebnisse asynchron zurück. Asynchrone Ergebnisse sollten mithilfe der IFunctionDiscoveryNotification-Schnittstelle zurückgegeben werden, die an die Initialize-Methode des Anbieters übergeben wird.

Wenn die Clientanwendung keine Benachrichtigungen implementiert hat, wird möglicherweise ein NULL-Parameter übergeben.

Rückgabewert

Mögliche Rückgabewerte sind unter anderem folgendes:

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen, und die Ergebnisse werden synchron zurückgegeben.
E_INVALIDARG
Der pIFunctionDiscoveryProviderQuery-Parameter ist NULL.
E_PENDING
Die Methode wurde erfolgreich abgeschlossen, und die Ergebnisse werden asynchron zurückgegeben.

Hinweise

Eine aktive Abfrage wird von der Funktionsermittlung mit einem Aufruf der EndQuery-Methode beendet. Beachten Sie, dass EndQuery nur aufgerufen wird, wenn der Client eine IFunctionDiscoveryNotification-Schnittstelle für die Abfrage angegeben hat. Wenn keine IFunctionDiscoveryNotification bereitgestellt wurde, muss die Abfrage vom Anbieter als beendet betrachtet werden, sobald der Abfrageaufruf abgeschlossen ist.

Ein Client kann eine Abfrage jederzeit erneut ausführen, nachdem der vorherige Abfrageaufruf zurückgegeben wurde. Die Implementierung von Query muss in der Lage sein, eine IFunctionInstanceCollection für die neue Abfrage zurückzugeben. EndQuery wird nur vor einem nachfolgenden Abfrageaufruf aufgerufen, wenn ein Client eine IFunctionDiscoveryNotification-Schnittstelle übergeben hat, die an die Initialize-Methode des Anbieters übergeben wurde.

Wenn QueryE_PENDING zurückgibt, muss der Anbieter die OnEvent-Methode der IFunctionDiscoveryNotification-Schnittstelle mit FD_EVENTID_SEARCHCOMPLETE aufrufen, um anzugeben, dass die Enumeration der Ergebnisse abgeschlossen ist. Fehler beim Senden des FD_EVENTID_SEARCHCOMPLETE-Ereignisses können dazu führen, dass Clients auf unbestimmte Zeit hängen

Anforderungen

Anforderung Wert
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