Freigeben über


IFunctionInstanceCollectionQuery::Execute-Methode (functiondiscoveryapi.h)

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

Führt die von IFunctionDiscovery::CreateInstanceCollectionQuery definierte Abfrage aus.

Syntax

HRESULT Execute(
  [out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);

Parameter

[out] ppIFunctionInstanceCollection

Ein Zeiger auf einen IFunctionInstanceCollection-Schnittstellenzeiger, der die angeforderte Funktion instance Auflistung empfängt.

Rückgabewert

Mögliche Rückgabewerte sind u. a. die folgenden:

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen. Ergebnisse werden synchron in ppIFunctonInstanceCollecton zurückgegeben.
E_OUTOFMEMORY
Die -Methode kann den für diesen Vorgang erforderlichen Arbeitsspeicher nicht zuordnen.
E_PENDING
Einige der Ergebnisse werden von einer asynchronen Benachrichtigung zurückgegeben. Weitere Informationen finden Sie im Abschnitt "Hinweise".
 

Eine vordefinierte Abfrage ist eine Abfrage einer mehrstufigen Kategorie. Wenn eine vordefinierte Abfrage ausgeführt wird, gibt jeder Anbieter, der eine Funktion zurückgibt, instance auch einen HRESULT-Wert zurück. Die HRESULT-Werte des Anbieters werden aggregiert, und der von der Execute-Methode zurückgegebene Wert spiegelt diese aggregierten Ergebnisse wider. Die Ergebnisse werden wie folgt aggregiert:

  • Wenn alle Anbieter S_OK zurückgeben, gibt ExecuteS_OK zurück.
  • Wenn mindestens ein Anbieter E_PENDING zurückgibt und alle anderen Anbieter entweder S_OK oder E_PENDING zurückgeben, gibt ExecuteE_PENDING zurück.
  • Wenn alle Anbieter einen Fehlerwert (d. h. einen anderen Wert als S_OK oder E_PENDING) zurückgeben , gibt Execute den Fehlerwert zurück, der vom zuletzt abgefragten Netzwerkanbieter zurückgegeben wurde. Wenn außerdem die IFunctionDiscoveryNotification-Rückrufroutine des Clients für IFunctionDiscovery::CreateInstanceCollectionQuery bereitgestellt wurde, wird für jeden Anbieter eine OnError-Benachrichtigung gesendet. Jede OnError-Benachrichtigung enthält das vom Anbieter zurückgegebene HRESULT.
  • Wenn mindestens ein Anbieter einen Fehlerwert zurückgibt und alle anderen Anbieter S_OK zurückgeben, gibt ExecuteS_OK zurück. OnError-Benachrichtigungen werden wie oben beschrieben gesendet.
  • Wenn mindestens ein Anbieter einen Fehlerwert und mindestens ein Anbieter E_PENDING zurückgibt, gibt ExecuteE_PENDING zurück. OnError-Benachrichtigungen werden wie oben beschrieben gesendet.
Wenn ExecuteS_OK zurückgibt, enthält ppIFunctionInstanceCollection die Ergebnisse der Abfrage. Wenn eine IFunctionDiscoveryNotification-Schnittstelle für die CreateInstanceCollectionQuery-Methode von IFunctionDiscovery bereitgestellt wird, werden Änderungen an den Ergebnissen über diese Schnittstelle kommuniziert.

Wenn ExecuteE_PENDING zurückgibt, wird das Resultset asynchron über die IFunctionDiscoveryNotification-Schnittstelle zurückgegeben, die für die CreateInstanceCollectionQuery-Methode von IFunctionDiscovery bereitgestellt wird. ppIFunctionInstanceCollection kann NULL sein oder ein partielles Resultset enthalten. Die Enumeration ist abgeschlossen, sobald die OnEvent-Methode von IFunctionDiscoveryNotification mit FD_EVENTID_SEARCHCOMPLETE aufgerufen wird. Nachdem das FD_EVENTID_SEARCHCOMPLETE-Ereignis empfangen wurde, werden zusätzliche Benachrichtigungen zu den Ergebnissen aktualisiert.

Hinweise

Diese Methode muss vom Clientprogramm aufgerufen werden, bevor Daten aus dem Abfrageobjekt abgerufen werden können. Wenn diese Methode aufgerufen wird, führt sie Folgendes aus:

  1. Ruft die Funktion instance Auflistungsobjekt ab.
  2. Fragt den Anbieter der Kategorie ab, die an IFunctionDiscovery::CreateInstanceCollectionQuery übergeben wird.
  3. Ruft den Kategorieanbieter ab.
  4. Fragt den Kategorieanbieter mithilfe der Unterkategoriedaten ab, um die Sammlung mithilfe von Abfrageeinschränkungen zu generieren.
  5. Initiiert den Updatebenachrichtigungsmechanismus, wenn die Adresse der IFunctionDiscoveryNotification-Rückrufroutine des Clientprogramms für IFunctionDiscovery::CreateInstanceCollectionQuery bereitgestellt wird.
  6. Speichert die Sammlungsdaten zwischen und gibt zurück.
Funktionsermittlungsnetzwerkanbieter geben Funktionsinstanzen nur über die IFunctionDiscoveryNotification-Schnittstelle zurück. Sie geben keine Funktionsinstanzen direkt zurück, wenn diese Methode aufgerufen wird. Stattdessen initiiert Execute einfach einen vollständig asynchronen Abrufvorgang und gibt E_PENDING zurück, um anzugeben, dass die Ergebnisse asynchron zurückgegeben werden. Benachrichtigungen müssen verwendet werden, um Funktionsinstanzen von Funktionsermittlungsnetzwerkanbietern abzurufen.

Anforderungen

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

Weitere Informationen

Funktionsermittlungsabfragen

IFunctionInstanceCollectionQuery