Fonction Wow64SuspendThread (wow64apiset.h)

Suspend le thread WOW64 spécifié.

Syntaxe

DWORD Wow64SuspendThread(
  HANDLE hThread
);

Paramètres

hThread

Handle du thread qui doit être suspendu. Le handle doit avoir le droit d’accès THREAD_SUSPEND_RESUME. Pour plus d’informations, consultez Sécurité des threads et droits d’accès.

Valeur retournée

Si la fonction réussit, la valeur de retour correspond au nombre de suspensions précédent du thread ; sinon, il est (DWORD) -1. Pour obtenir des informations d’erreur étendues, utilisez la fonction GetLastError .

Remarques

Si la fonction réussit, l’exécution du thread spécifié est suspendue et le nombre de suspensions du thread est incrémenté. La suspension d’un thread entraîne l’arrêt de l’exécution du code en mode utilisateur (application).

Cette fonction est principalement conçue pour être utilisée par les débogueurs. Il n’est pas destiné à être utilisé pour la synchronisation de threads. L’appel de Wow64SuspendThread sur un thread qui possède un objet de synchronisation, tel qu’un mutex ou une section critique, peut entraîner un blocage si le thread appelant tente d’obtenir un objet de synchronisation appartenant à un thread suspendu. Pour éviter cette situation, un thread au sein d’une application qui n’est pas un débogueur doit signaler à l’autre thread de se suspendre lui-même. Le thread cible doit être conçu pour watch pour ce signal et répondre de manière appropriée.

Chaque thread a un nombre de suspensions (avec une valeur maximale de MAXIMUM_SUSPEND_COUNT). Si le nombre de suspensions est supérieur à zéro, le thread est suspendu ; dans le cas contraire, le thread n’est pas suspendu et peut être exécuté. L’appel de Wow64SuspendThread entraîne l’incrémentation du nombre de suspensions du thread cible. La tentative d’incrémentation au-delà du nombre maximal de suspensions entraîne une erreur sans incrémenter le nombre.

La fonction ResumeThread décrémente le nombre de suspensions d’un thread suspendu.

Cette fonction est destinée aux applications 64 bits. Il n’est pas pris en charge sur Windows 32 bits ; ces appels échouent et définissez le dernier code d’erreur sur ERROR_INVALID_FUNCTION. Une application 32 bits peut appeler cette fonction sur un thread WOW64 ; le résultat est identique à l’appel de la fonction SuspendThread .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
En-tête wow64apiset.h
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

ResumeThread