WaitForDebugEventEx 函式 (debugapi.h)
等候偵錯事件發生在正在偵錯的進程中。
語法
BOOL WaitForDebugEventEx(
[out] LPDEBUG_EVENT lpDebugEvent,
[in] DWORD dwMilliseconds
);
參數
[out] lpDebugEvent
接收偵錯事件相關資訊 之DEBUG_EVENT 結構的指標。
[in] dwMilliseconds
等候偵錯事件的毫秒數。 如果此參數為零,函式會測試偵錯事件並立即傳回。 如果參數為 INFINITE,則函式不會在發生偵錯事件之前傳回。
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
只有建立正在偵錯之進程的執行緒可以呼叫 WaitForDebugEventEx。
發生CREATE_PROCESS_DEBUG_EVENT時,偵錯工具應用程式會收到正在偵錯之進程的影像檔控制碼、正在偵錯之進程的控制碼,以及 DEBUG_EVENT結構中 偵錯之進程的初始執行緒控制碼。 這些控制碼傳回的成員是 u.CreateProcessInfo.hFile (影像檔) 、 u.CreateProcessInfo.hProcess (進程) ,以及 u.CreateProcessInfo.hThread (初始執行緒) 。 如果系統先前回報EXIT_PROCESS_DEBUG_EVENT偵錯事件,當偵錯工具呼叫 ContinueDebugEvent 函式時,系統會關閉進程和執行緒的控制碼。 偵錯工具應該藉由呼叫 CloseHandle 函式來關閉影像檔的控制碼。
同樣地,當發生CREATE_THREAD_DEBUG_EVENT時,偵錯工具應用程式會收到執行緒控制碼,該執行緒的建立會導致DEBUG_EVENT結構的u.CreateThread.hThread成員發生偵錯事件。 如果系統先前回報EXIT_THREAD_DEBUG_EVENT偵錯事件,當偵錯工具呼叫 ContinueDebugEvent 函式時,系統會關閉執行緒的控制碼。
發生LOAD_DLL_DEBUG_EVENT時,偵錯工具應用程式會收到DEBUG_EVENT結構之 u.LoadDll.hFile成員中載入 DLL 的控制碼。 偵錯工具應用程式應該藉由呼叫 CloseHandle 函式來關閉此控制碼。
範例
如需範例,請參閱 撰寫偵錯工具的 Main 迴圈。
需求
最低支援的用戶端 | Windows 10 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2016 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | debugapi.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |