IFunctionDiscoveryProvider ::Query, méthode (functiondiscoveryprovider.h)

[La découverte de fonctions peut être utilisée dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il peut être modifié ou indisponible dans les versions suivantes.]

Récupère une collection d’instances de fonction qui répondent aux contraintes spécifiées.

Syntaxe

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

Paramètres

[in] pIFunctionDiscoveryProviderQuery

Pointeur vers une interface IFunctionDiscoveryProviderQuery qui contient des paramètres qui définissent les critères de requête.

[out] ppIFunctionInstanceCollection

Pointeur vers une interface IFunctionInstanceCollection que le fournisseur doit utiliser pour retourner des instances de fonction de façon synchrone en réponse à la requête donnée.

Lorsque vous implémentez la méthode Query , vous pouvez définir ce paramètre sur NULL si votre fournisseur prend en charge les notifications, c’est-à-dire que votre fournisseur retourne des résultats de façon asynchrone. Les résultats asynchrones doivent être retournés à l’aide de l’interface IFunctionDiscoveryNotification passée à la méthode Initialize du fournisseur.

Si l’application cliente n’a pas implémenté de notifications, elle peut passer un paramètre NULL .

Valeur retournée

Les valeurs de retour possibles incluent, sans s’y limiter, les éléments suivants.

Code de retour Description
S_OK
La méthode s’est terminée correctement et les résultats sont retournés de manière synchrone.
E_INVALIDARG
Le paramètre pIFunctionDiscoveryProviderQuery est NULL.
E_PENDING
La méthode s’est terminée correctement et les résultats sont retournés de manière asynchrone.

Remarques

Une requête active est terminée par la découverte de fonction avec un appel à la méthode EndQuery . Notez que EndQuery est appelé uniquement si le client a spécifié une interface IFunctionDiscoveryNotification pour la requête. Si un IFunctionDiscoveryNotification n’a pas été fourni, la requête doit être considérée comme terminée par le fournisseur une fois l’appel de requête terminé.

Un client peut réexécutar une requête à tout moment après le retour de l’appel de requête précédent. L’implémentation de Query doit être en mesure de retourner un IFunctionInstanceCollection pour la nouvelle requête. EndQuery est appelé uniquement avant un appel de requête suivant lorsqu’un client a passé une interface IFunctionDiscoveryNotification passée à la méthode Initialize du fournisseur.

Si query retourne E_PENDING, le fournisseur doit appeler la méthode OnEvent de l’interface IFunctionDiscoveryNotification avec FD_EVENTID_SEARCHCOMPLETE pour indiquer que l’énumération des résultats est terminée. L’échec de l’envoi de l’événement FD_EVENTID_SEARCHCOMPLETE peut entraîner la suspension indéfinie des clients

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête functiondiscoveryprovider.h

Voir aussi

IFunctionDiscoveryProvider