This function blocks the debugger thread until a debug event is generated in the target process being debugged or the specified timeout elapses.
BOOL WaitForDebugEvent( LPDEBUG_EVENT lpDebugEvent, DWORD dwMilliseconds );
[in] Pointer to a DEBUG_EVENT structure that is filled with information about the debugging event.
[in] Number of milliseconds to wait for a debugging event. The following table shows expected return values:
0Tests for a debugging event and returns immediately.
INFINITEReturns after a debugging event has occurred.
OtherReturns 0. GetLastError indicates WAIT_TIMEOUT.
Nonzero indicates success.
Zero indicates failure.
To get extended error information, call GetLastError.
Only the thread that created the process being debugged can call WaitForDebugEvent.
There is a 64 (MAXIMUM_WAIT_OBJECTS) thread limit for WaitForDebugEvent, which means that the maximum threads that can be debugged per-process is 64.
This call translates to the read API call of the debug message queue with the specified timeout value.