Share via


Wow64SuspendThread 함수(wow64apiset.h)

지정된 WOW64 스레드를 일시 중단합니다.

구문

DWORD Wow64SuspendThread(
  HANDLE hThread
);

매개 변수

hThread

일시 중단될 스레드에 대한 핸들입니다. 핸들에는 THREAD_SUSPEND_RESUME 액세스 권한이 있어야 합니다. 자세한 내용은 스레드 보안 및 액세스 권한을 참조하세요.

반환 값

함수가 성공하면 반환 값은 스레드의 이전 일시 중단 횟수입니다. 그렇지 않으면 (DWORD) -1입니다. 확장 오류 정보를 얻으려면 GetLastError 함수를 사용합니다.

설명

함수가 성공하면 지정된 스레드의 실행이 일시 중단되고 스레드의 일시 중단 횟수가 증가합니다. 스레드를 일시 중단하면 스레드가 사용자 모드(애플리케이션) 코드 실행을 중지합니다.

이 함수는 주로 디버거에서 사용하도록 설계되었습니다. 스레드 동기화에 사용할 수 없습니다. 뮤텍스 또는 중요 섹션과 같은 동기화 개체를 소유하는 스레드에서 Wow64SuspendThread 를 호출하면 호출 스레드가 일시 중단된 스레드가 소유한 동기화 개체를 가져오려고 하면 교착 상태가 발생할 수 있습니다. 이러한 상황을 방지하려면 디버거가 아닌 애플리케이션 내의 스레드가 다른 스레드에 자체 일시 중단하라는 신호를 보내야 합니다. 대상 스레드는 이 신호에 대해 watch 적절하게 응답하도록 설계되어야 합니다.

각 스레드에는 일시 중단 횟수가 있습니다(최대값은 MAXIMUM_SUSPEND_COUNT). 일시 중단 수가 0보다 크면 스레드가 일시 중단됩니다. 그렇지 않으면 스레드가 일시 중단되지 않고 실행할 수 있습니다. Wow64SuspendThread를 호출하면 대상 스레드의 일시 중단 수가 증가합니다. 최대 일시 중단 횟수를 지나서 증가하려고 하면 개수를 증가하지 않고 오류가 발생합니다.

ResumeThread 함수는 일시 중단된 스레드의 일시 중단 횟수를 감소합니다.

이 함수는 64비트 애플리케이션을 위한 것입니다. 32비트 Windows에서는 지원되지 않습니다. 이러한 호출이 실패하고 마지막 오류 코드를 ERROR_INVALID_FUNCTION 설정합니다. 32비트 애플리케이션은 WOW64 스레드에서 이 함수를 호출할 수 있습니다. 결과는 SuspendThread 함수를 호출하는 것과 동일합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
머리글 wow64apiset.h
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

ResumeThread