Wow64SuspendThread 函数 (wow64apiset.h)
挂起指定的 WOW64 线程。
语法
DWORD Wow64SuspendThread(
HANDLE hThread
);
参数
hThread
要挂起的线程的句柄。 句柄必须具有THREAD_SUSPEND_RESUME访问权限。 有关详细信息,请参阅 线程安全和访问权限。
返回值
如果函数成功,则返回值为线程的上一个挂起计数;否则, (DWORD) -1。 若要获取扩展的错误信息,请使用 GetLastError 函数。
注解
如果函数成功,则挂起指定线程的执行,线程的挂起计数将递增。 挂起线程会导致线程停止执行用户模式 (应用程序) 代码。
此函数主要用于调试器。 它不用于线程同步。 如果调用线程尝试获取暂停的线程拥有的同步对象,则调用 Wow64SuspendThread (如互斥体或关键部分)可能会导致死锁。 为避免这种情况,应用程序中不是调试器的线程应向另一个线程发出信号,以暂停自身。 目标线程必须设计为watch此信号并做出适当的响应。
每个线程都有一个最大值为 MAXIMUM_SUSPEND_COUNT) 的暂停计数 (。 如果挂起计数大于零,则暂停线程;否则,线程不会挂起,并且符合执行条件。 调用 Wow64SuspendThread 会导致目标线程的挂起计数递增。 尝试递增超过最大暂停计数会导致错误而不递增计数。
ResumeThread 函数会减少挂起线程的挂起计数。
此函数适用于 64 位应用程序。 32 位 Windows 不支持它;此类调用失败,并将最后一个错误代码设置为ERROR_INVALID_FUNCTION。 32 位应用程序可以在 WOW64 线程上调用此函数;结果与调用 SuspendThread 函数相同。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
标头 | wow64apiset.h |
Library | Kernel32.lib |
DLL | Kernel32.dll |