IEnumWbemClassObject::NextAsync, méthode (wbemcli.h)

Utilisez la méthode NextAsync lorsqu’une récupération asynchrone contrôlée d’objets vers un récepteur est requise. La récupération asynchrone normale, telle qu’un appel à IWbemServices::ExecQueryAsync, entraîne une remise non contrôlée d’objets à l’implémentation de IWbemObjectSink de l’appelant. Cette méthode est utile dans les cas où un composant contrôle la remise d’objets.

Syntaxe

HRESULT NextAsync(
  [in] ULONG           uCount,
  [in] IWbemObjectSink *pSink
);

Paramètres

[in] uCount

Nombre d’objets demandés.

[in] pSink

Récepteur pour recevoir les objets. Le récepteur doit être implémenté par l’appelant. Chaque lot d’objets étant demandés, ils sont remis au paramètre pSink de la méthode Indicate , suivi d’un appel final au paramètre pSink de la méthode SetStatus . Si le récepteur doit être utilisé pour remettre des objets, cette méthode retourne WBEM_S_NO_ERROR, même si le nombre d’objets à livrer est inférieur à celui demandé. Toutefois, s’il ne reste plus d’objets, le paramètre pSink est ignoré (aucun appel au paramètre pSink de SetStatus n’est effectué). Au lieu de cela, cette méthode retourne WBEM_S_FALSE.

Valeur retournée

La méthode NextAsync retourne un HRESULT qui indique le status de l’appel de méthode. La liste suivante répertorie la valeur contenue dans un HRESULT.

Remarques

Un appel à la fonction COM GetErrorInfo fournit plus d’informations sur l’erreur. Des codes d’erreur spécifiques à COM peuvent également être retournés si des problèmes réseau vous font perdre la connexion à distance à Windows Management.

Cet appel retourne immédiatement et la remise au récepteur se produit en arrière-plan. Si plusieurs appels sont effectués à cette méthode à partir d’un ou plusieurs threads, ils sont logiquement mis en file d’attente et l’ordre des appels et de la remise des objets est conservé. Les appels multiples effectués à cette méthode à partir d’un ou plusieurs blocs de threads ne sont pas retournés tant que tous les objets récepteurs liés aux appels précédents à cette méthode n’ont pas été pris en charge. Un appel à Réinitialiser n’affecte pas la remise d’objets en cours suite à des appels précédents. La méthode Reset entraîne uniquement le démarrage des nouveaux appels au début de la séquence d’objets.

Si le nombre d’objets demandés est immédiatement disponible, la fonction retourne WBEM_S_NO_ERROR. Si moins que le nombre d’objets demandés est disponible, les objets disponibles sont retournés et WBEM_S_NO_ERROR sont retournés. Le reste des objets est remis par le récepteur fourni par l’utilisateur.

À mesure que les objets deviennent disponibles, l’implémentation de IWbemObjectSink::Indicate par l’appelant est appelée zéro ou plusieurs fois pour remettre les objets. Ceci est suivi d’un appel à IWbemObjectSink::SetStatus avec la valeur WBEM_S_NO_ERROR si des éléments uCount sont retournés.

Si moins d’objets sont disponibles que le nombre demandé, Indique est appelé pour les objets disponibles. SetStatus est ensuite appelé avec la valeur WBEM_S_FALSE, ou le code d’erreur si une erreur s’est produite.

Si le nombre d’objets demandé est remis, l’objet final est suivi d’un appel à SetStatus avec un code status de WBEM_S_NO_ERROR. Si l’énumération se termine avant que le nombre demandé d’objets puisse être remis, la méthode SetStatus a un code status de WBEM_S_FALSE.

S’il n’y a pas d’objets disponibles, Indique n’est pas appelé. Toutefois, un appel final à SetStatus se produit toujours pour indiquer la status de l’ensemble de l’opération.

Étant donné que le rappel peut ne pas être retourné au même niveau d’authentification que celui requis par le client, il est recommandé d’utiliser des données semi-synchronisées au lieu d’une communication asynchrone. Si vous avez besoin d’une communication asynchrone, consultez Appel d’une méthode.

Pour plus d’informations sur l’utilisation semi-synchrone des méthodes, consultez IEnumWbemClassObject::Next et Appel d’une méthode.

Configuration requise

   
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête wbemcli.h (include Wbemidl.h)
Bibliothèque Wbemuuid.lib
DLL Fastprox.dll