Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
[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.]
Exécute la requête définie par IFunctionDiscovery ::CreateInstanceQuery.
Syntaxe
HRESULT Execute(
[out] IFunctionInstance **ppIFunctionInstance
);
Paramètres
[out] ppIFunctionInstance
Pointeur vers un pointeur d’interface IFunctionInstance qui reçoit la fonction demandée instance.
Valeur retournée
Les valeurs de retour possibles incluent, sans s’y limiter, les éléments suivants.
| Code/valeur de retour | Description |
|---|---|
|
La commande s'est correctement terminée. |
|
Le paramètre ppIFunctionInstance a la valeur NULL. |
|
La méthode ne peut pas allouer la mémoire nécessaire pour effectuer cette opération. |
|
Les résultats à retourner par un fournisseur passent par une notification asynchrone. |
|
La fonction instance représentée par l’ID spécifié n’existe pas sur cet ordinateur. |
|
La fonction instance n’a pas pu être retournée, car la clé correspondant à la fonction instance a été supprimée par un autre processus. Cette erreur est retournée par le fournisseur de Registre si une clé est supprimée pendant le traitement des requêtes. |
|
La fonction instance n’a pas pu être retournée, car la clé correspondant à la fonction instance est introuvable. Cette erreur est retournée par le fournisseur de Registre lorsque le fournisseur n’a pas trouvé d’instances correspondantes pour une requête instance. |
Une requête prédéfinie est une requête d’une catégorie en couches. Lorsqu’une requête prédéfinie est exécutée, chaque fournisseur qui retourne une fonction instance retourne également une valeur HRESULT. Les valeurs HRESULT du fournisseur sont agrégées et la valeur retournée par la méthode Execute reflète ces résultats d’agrégation. Les résultats sont agrégés comme suit :
- Si tous les fournisseurs retournent S_OK, l’exécution retourne S_OK.
- Si au moins un fournisseur retourne E_PENDING et que tous les autres fournisseurs retournent S_OK ou E_PENDING, Exécuter retourne E_PENDING.
- Si tous les fournisseurs retournent une valeur d’erreur (autrement dit, une valeur autre que S_OK ou E_PENDING), Execute retourne la valeur d’erreur retournée par le fournisseur réseau qui a été interrogé pour la dernière fois. En outre, si la routine de rappel IFunctionDiscoveryNotification du client a été fournie à IFunctionDiscovery ::CreateInstanceCollectionQuery, une notification OnError est envoyée pour chaque fournisseur. Chaque notification OnError contient le HRESULT retourné par le fournisseur.
- Si au moins un fournisseur retourne une valeur d’erreur et que tous les autres fournisseurs retournent S_OK, Execute retourne S_OK. Les notifications OnError sont envoyées comme décrit ci-dessus.
- Si au moins un fournisseur retourne une valeur d’erreur et qu’au moins un fournisseur retourne E_PENDING, Execute retourne E_PENDING. Les notifications OnError sont envoyées comme décrit ci-dessus.
Remarques
Cette méthode doit être appelée par le programme client pour récupérer des données à partir de l’objet de requête. Lorsqu’elle est appelée, cette méthode effectue les opérations suivantes :
- Récupère le instance de fonction.
- Lance le mécanisme de notification de mise à jour si l’adresse de la routine de rappel IFunctionDiscoveryNotification du programme client est fournie à IFunctionDiscovery ::CreateInstanceQuery.
Si Execute est appelé deux fois sur le même objet de requête, la première requête est terminée avant l’exécution de la deuxième requête.
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 | functiondiscoveryapi.h |
| DLL | FunDisc.dll |