A version of this page is also available for

Windows Embedded CE 6.0 R3


This function suspends the specified thread.


DWORD SuspendThread(
  HANDLE hThread


  • hThread
    [in] Handle to the thread.

Return Value

The previous suspend count of the thread indicates success. 0xFFFFFFFF indicates failure. To get extended error information, call GetLastError.


Calling SuspendThread on a kernel thread does not suspend the thread.

If the function succeeds, execution of the specified thread is suspended and the thread's suspend count is incremented.

Suspending a thread causes the thread to stop executing user-mode (application) code.

If the thread is making a kernel call, SuspendThread fails. An application might need to repeat the SuspendThread several times for it to succeed.

Each thread has a suspend count (with a maximum value of MAXIMUM_SUSPEND_COUNT). If the suspend count is greater than zero, the thread is suspended; otherwise, the thread is not suspended and is eligible for execution.

Calling SuspendThread causes the target thread's suspend count to be incremented. Attempting to increment past the maximum suspend count causes an error without incrementing the count.

The ResumeThread function decrements the suspend count of a suspended thread.


Header winbase.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also


Process and Thread Functions