UnregisterWaitEx fonction)

Annule une opération d’attente inscrite émise par la fonction RegisterWaitForSingleObject .

Syntaxe

BOOL WINAPI UnregisterWaitEx(
  _In_     HANDLE WaitHandle,
  _In_opt_ HANDLE CompletionEvent
);

Paramètres

WaitHandle [ dans]

Handle d'attente. Ce descripteur est retourné par la fonction RegisterWaitForSingleObject .

CompletionEvent [ dans, facultatif]

Handle de l’objet d’événement à signaler lorsque l’opération d’attente a été annulée. Ce paramètre peut être NULL.

Si ce paramètre n’est pas une _ _ valeur de handle valide, la fonction attend la fin de toutes les fonctions de rappel avant de retourner.

Si ce paramètre a la valeur null, la fonction marque le minuteur pour la suppression et le retourne immédiatement. Toutefois, la plupart des appelants doivent attendre la fin de la fonction de rappel afin qu’ils puissent effectuer tout nettoyage nécessaire.

Si l’appelant fournit cet événement et que la fonction réussit ou que la fonction échoue avec l' erreur _ e/s _ en attente, ne fermez pas l’événement tant qu’il n’est pas signalé.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Vous ne pouvez pas effectuer un appel bloquant à UnregisterWaitEx à partir d’une fonction de rappel pour la même opération d’attente. Dans le cas contraire, le rappel attendra qu’il se termine. En général, un appel bloquant à UnregisterWaitEx crée une dépendance entre le thread actuel et le rappel, donc pour effectuer un appel de désinscription de blocage sur une autre opération d’attente, vous devez vous assurer que les fonctions de rappel ne dépendent pas les unes des autres et que la deuxième opération d’attente n’effectue pas non plus un appel de désinscription de blocage sur la première opération.

Soyez prudent lorsque vous effectuez un appel UnregisterWaitEx bloquant sur un thread persistant. Si l’opération d’attente en cours d’annulation d’inscription a été créée avec WT _ EXECUTEINPERSISTENTTHREAD, un blocage peut se produire.

Après avoir effectué un appel non bloquant à UnregisterWaitEx, aucune nouvelle fonction de rappel associée à WaitHandle ne peut être mise en file d’attente. Toutefois, il peut y avoir des fonctions de rappel en attente déjà mises en file d’attente dans les threads de travail.

Dans certaines conditions, la fonction échoue avec l' erreur _ e/s _ en attente si CompletionEvent a la valeur null. Cela indique qu’il existe des fonctions de rappel en attente. Ces rappels s’exécutent ou sont en cours d’exécution.

Si CompletionEvent est un handle d’événement fourni par l’appelant, il est possible que la fonction réussisse, échoue avec une erreur d' _ e/s _ en attente ou échoue avec un code d’erreur différent. Si la fonction réussit, ou si la fonction échoue avec l' erreur _ e/s _ en attente, l’appelant doit toujours attendre que l’événement soit signalé pour fermer l’événement. Si la fonction échoue avec un code d’erreur différent, il n’est pas nécessaire d’attendre que l’événement soit signalé pour fermer l’événement.

Windows XP : Si CompletionEvent est un handle d’événement fourni par l’appelant et que la fonction échoue avec une erreur d' _ e/s _ en attente, l’appelant doit attendre jusqu’à ce que l’événement soit signalé pour fermer l’événement. ce comportement a été modifié à partir de Windows Vista.

Pour compiler une application qui utilise cette fonction, définissez _ Win32 _ winnt comme 0x0500 ou version ultérieure. pour plus d’informations, consultez utilisation des en-têtes de Windows.

Configuration requise

Condition requise Valeur
Client minimal pris en charge
Windows [Applications de bureau XP uniquement]
Serveur minimal pris en charge
Windows Serveur 2003 [ applications de bureau uniquement]
En-tête
Threadpoollegacyapiset. h sur Windows 8 et Windows Server 2012 (inclure Windows. h);
WinBase. h sur Windows 7, Windows server 2008 R2, Windows Vista, Windows server 2008, Windows XP et Windows Server 2003 (include Windows. h)
Bibliothèque
Kernel32.lib
DLL
Kernel32.dll

Voir aussi

RegisterWaitForSingleObject

Fonctions de synchronisation

Regroupement des threads