WinLogon 是使用者模式程式,可處理互動式使用者登入和註銷的工作,並處理 CTRL+ALT+DELETE 的所有實例。
從核心調試程式控制 NTSD
偵錯 WinLogon 最簡單的方法是使用 NTSD,並從 核心調試程式控制它。
啟用 WinLogon 偵錯
因為您將使用者模式調試程序輸出重新導向至核心調試程式,因此您必須設定核心偵錯連線。 請參閱 開始設定以進行偵錯。
若要將偵錯工具附加至 WinLogon,您必須通過註冊表,以便從啟動時進行偵錯。 若要設定 WinLogon 偵錯,請將 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\WinLogon.EXE\Debugger 設定為:
ntsd -d -x -g
-d 選項會將控制權傳遞至核心調試程式。 -x 選項會使調試程式擷取存取違規作為第二次機會例外狀況。 -g 選項會導致 WinLogon 進程在附件之後執行。 如果您想要在開始 Winlogon.exe 之前開始偵錯,請勿新增 -g (例如,如果您想要設定初始斷點)。
此外,您應該將 winlogon.exe 索引鍵底下的 GlobalFlag 值設定為REG_DWORD “0x000400F0”。 這會設定堆積檢查和FLG_ENABLE_KDEBUG_SYMBOL_LOAD。 不過,由於這個第二個旗標只會影響核心調試程式,因此在啟動調試程式之前,也必須將符號複製到目標計算機。
登錄變更需要重新啟動才能生效。
執行偵錯
下一次重新啟動之後,調試程式會自動進入 WinLogon。
如需如何繼續的說明,請參閱 從核心調試程式控制 User-Mode 調試程式 。
您必須將符號路徑設定為主機上的某個位置,或設定為網路上的其他某個位置。 當 WinLogon 進行偵錯時,目標電腦上的網路驗證將無法正常運作。