Share via


Wow64SuspendThread 函式 (wow64apiset.h)

暫停指定的 WOW64 線程。

語法

DWORD Wow64SuspendThread(
  HANDLE hThread
);

參數

hThread

要暫停之線程的句柄。 句柄必須具有THREAD_SUSPEND_RESUME訪問許可權。 如需詳細資訊,請參閱 線程安全性和訪問許可權

傳回值

如果函式成功,則傳回值是線程先前的暫止計數;否則, (DWORD) -1。 若要取得擴充的錯誤資訊,請使用 GetLastError 函式。

備註

如果函式成功,則會暫停執行指定的線程,並遞增線程的暫停計數。 暫停線程會導致線程停止執行使用者模式, (應用程式) 程序代碼。

此函式主要是設計供調試程式使用。 它不適合用於線程同步處理。 在擁有同步處理對象的線程上呼叫 Wow64SuspendThread ,例如 mutex 或 critical 區段,如果呼叫線程嘗試取得暫停線程所擁有的同步處理物件,可能會導致死結。 若要避免這種情況,非調試程式的應用程式內線程應該向另一個線程發出信號,以暫停本身。 目標線程必須設計為 watch 此訊號並適當地回應。

每個線程都有暫停計數 (,最大值為 MAXIMUM_SUSPEND_COUNT) 。 如果暫停計數大於零,線程就會暫停;否則,線程不會暫停,而且符合執行資格。 呼叫 Wow64SuspendThread 會導致目標線程的暫停計數遞增。 嘗試遞增超過最大暫止計數會導致錯誤,而不會遞增計數。

ResumeThread 函式會遞減暫止線程的暫停計數。

此函式適用於64位應用程式。 32 位 Windows 不支援它;這類呼叫失敗,並將最後一個錯誤碼設定為 ERROR_INVALID_FUNCTION。 32 位應用程式可以在 WOW64 線程上呼叫此函式;結果與呼叫 SuspendThread 函式相同。

規格需求

需求
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
標頭 wow64apiset.h
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

ResumeThread