Wow64SuspendThread-Funktion (wow64apiset.h)

Hält den angegebenen WOW64-Thread an.

Syntax

DWORD Wow64SuspendThread(
  HANDLE hThread
);

Parameter

hThread

Ein Handle für den Thread, der angehalten werden soll. Das Handle muss über das zugriffsrecht THREAD_SUSPEND_RESUME verfügen. Weitere Informationen finden Sie unter Threadsicherheit und Zugriffsrechte.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert die vorherige Angehaltene Anzahl des Threads. andernfalls ist es (DWORD) -1. Verwenden Sie die GetLastError-Funktion , um erweiterte Fehlerinformationen abzurufen.

Hinweise

Wenn die Funktion erfolgreich ist, wird die Ausführung des angegebenen Threads angehalten, und die Anzahl der Unterbrechungen des Threads wird erhöht. Das Anhalten eines Threads führt dazu, dass der Thread die Ausführung von Benutzermoduscode (Anwendungscode) beendet.

Diese Funktion ist in erster Linie für die Verwendung durch Debugger konzipiert. Es ist nicht für die Threadsynchronisierung vorgesehen. Das Aufrufen von Wow64SuspendThread für einen Thread, der ein Synchronisierungsobjekt besitzt, z. B. ein Mutex oder ein kritischer Abschnitt, kann zu einem Deadlock führen, wenn der aufrufende Thread versucht, ein Synchronisierungsobjekt abzurufen, das einem angehaltenen Thread gehört. Um diese Situation zu vermeiden, sollte ein Thread in einer Anwendung, die kein Debugger ist, dem anderen Thread signalisieren, sich selbst anzusetzen. Der Zielthread muss so konzipiert sein, dass er für dieses Signal watch und entsprechend reagieren kann.

Jeder Thread verfügt über eine Angehaltene Anzahl (mit einem Höchstwert von MAXIMUM_SUSPEND_COUNT). Wenn die Anzahl der Unterbrechungen größer als 0 ist, wird der Thread angehalten. Andernfalls wird der Thread nicht angehalten und kann ausgeführt werden. Das Aufrufen von Wow64SuspendThread bewirkt, dass die Anzahl der Angehaltenen des Zielthreads erhöht wird. Der Versuch, die maximale Anzahl der Unterbrechungen zu inkrementieren, führt zu einem Fehler, ohne die Anzahl zu erhöhen.

Die ResumeThread-Funktion verringert die Anzahl der Angehaltenen eines angehaltenen Threads.

Diese Funktion ist für 64-Bit-Anwendungen vorgesehen. Es wird unter 32-Bit-Windows nicht unterstützt. Solche Aufrufe schlagen fehl, und legen Sie den letzten Fehlercode auf ERROR_INVALID_FUNCTION fest. Eine 32-Bit-Anwendung kann diese Funktion in einem WOW64-Thread aufrufen. das Ergebnis entspricht dem Aufrufen der SuspendThread-Funktion .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Kopfzeile wow64apiset.h
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

ResumeThread