Méthode IWbemServices ::CancelAsyncCall (wbemcli.h)
La méthode IWbemServices ::CancelAsyncCall annule tous les appels asynchrones en attente basés sur le pointeur IWbemObjectSink , qui a été passé à l’origine à la méthode asynchrone. Le pointeur IWbemObjectSink en attente peut être libéré avant l’appel ou après le retour de l’appel. La méthode CancelAsyncCall n’est pas opérationnelle à partir d’un récepteur et n’est pas prise en charge par les fournisseurs de méthodes. Cela signifie que seule la fin de l’appel du client est annulée. Le fournisseur d’implémentation n’est pas informé que l’appel a été annulé et s’exécute jusqu’à son terme. Vous devez tenir compte de cela avant d’annuler les méthodes qui prennent beaucoup de temps, telles que les méthodes Defrag et Format dans la classe Win32_Volume .
Syntaxe
HRESULT CancelAsyncCall(
[in] IWbemObjectSink *pSink
);
Paramètres
[in] pSink
Pointeur vers l’implémentation IWbemObjectSink fournie par le client vers l’une des méthodes asynchrones d’IWbemServices.
Valeur retournée
Cette méthode retourne une valeur HRESULT qui indique l’état de l’appel de méthode. La liste suivante répertorie la valeur contenue dans un HRESULT.
En cas d’échec, vous pouvez obtenir les informations disponibles à partir de la fonction COM GetErrorInfo.
Les 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.
Remarques
Étant donné que le rappel au récepteur peut ne pas être retourné au même niveau d’authentification que celui requis par le client, il est recommandé d’utiliser une communication semi-synchrone plutôt qu’une communication asynchrone. Pour plus d’informations, consultez Appel d’une méthode. L’appel de CancelAsyncCall à partir d’une implémentation de IWbemObjectSink ::Indicate ou IWbemObjectSink ::SetStatus peut interférer avec l’état WMI et n’est pas recommandé.
Dans le cas d’un appel de méthode tel que ExecMethodAsync, seule la fin du client de l’appel est annulée. Le fournisseur d’implémentation n’est pas informé que l’appel a été annulé et s’exécute jusqu’à son terme.
Pour plus d’informations sur l’utilisation des appels asynchrones, consultez Effectuer un appel asynchrone avec C++ et Recevoir des notifications d’événements asynchrones
Exemples
Pour obtenir un exemple complet qui utilise CancelAsyncCall, consultez Exemple : Réception de notifications d’événements via WMI
L’exemple C++ suivant, extrait de l’exemple \\Program Files\Microsoft SDKs\Windows\v7.0\Samples\sysmgmt\wmi\vc\decoupled\instance_provider sample, illustre une implémentation de CancelAsyncCall.HRESULT CProvider_IWbemServices :: CancelAsyncCall (
IWbemObjectSink *a_Sink
)
{
HRESULT t_Result = WBEM_E_NOT_AVAILABLE ;
return t_Result ;
}
Configuration requise
Condition requise | Valeur |
---|---|
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 ; Esscli.dll ; FrameDyn.dll ; FrameDynOS.dll ; Ntevt.dll ; Stdprov.dll ; Viewprov.dll ; Wbemcomn.dll ; Wbemcore.dll ; Wbemess.dll ; Wbemsvc.dll ; Wmipicmp.dll ; Wmidcprv.dll ; Wmipjobj.dll ; Wmiprvsd.dll |