答案1
查看提供商的事件的通用事件表,Microsoft-Windows-Winlogon
我可以看到该CreatePrimaryTerminal
任务需要 200 秒以上才能完成。
3 年前我也看到了这个,这里字体文件导致这么长时间的延迟。看看这是否也适用于你。
但这肯定与字体有关。查看调用堆栈显示,CreatePrimaryTerminal 函数加载了字体:
Line #, Process, Stack Tag, Stack, Thread ID, Count, Weight (in view) (ms), TimeStamp (s), % Weight
9, , , winlogon.exe!WinMain, , 107, 106,712051, , 0,01
10, , , winlogon.exe!CSession::CreatePrimaryTerminal, , 107, 106,712051, , 0,01
11, , , winlogon.exe!CreatePrimaryTerminal, , 107, 106,712051, , 0,01
12, , , |- user32.dll!CreateWindowStationW, , 106, 105,712051, , 0,01
13, , , | user32.dll!CommonCreateWindowStation, , 106, 105,712051, , 0,01
14, , , | user32.dll!NtUserCreateWindowStation, , 106, 105,712051, , 0,01
15, , , | ntoskrnl.exe!KiSystemServiceCopyEnd, , 106, 105,712051, , 0,01
16, , , | win32kfull.sys!NtUserCreateWindowStation, , 106, 105,712051, , 0,01
17, , , | win32kfull.sys!xxxCreateWindowStation, , 106, 105,712051, , 0,01
18, , , | |- win32kfull.sys!xxxInitTerminal, , 102, 101,694054, , 0,01
19, , , | | win32kfull.sys!xxxLW_LoadFonts, , 102, 101,694054, , 0,01
20, , , | | win32kfull.sys!xxxbEnumerateRegistryFonts, , 102, 101,694054, , 0,01
21, , , | | win32kfull.sys!xxxbEnumerateRegistryFontsInternal, , 102, 101,694054, , 0,01
22, , , | | |- win32kfull.sys!xxxAddFontResourceW, , 96, 95,668687, , 0,01
23, , , | | | win32kfull.sys!xxxClientAddFontResourceW, , 96, 95,668687, , 0,01
最新的跟踪显示您仍然安装了其他字体(Marketing Script Inline、Marketing Script、Microsoft JhengHei、CordiaUC、Teamviewer、Rage Italic、La Bambda、Quixley、Pump Demi)。
因此,删除所有第三方字体。
// 编辑 2016-08-24
第二条跟踪显示 Boot-SessionInit/SMSSInit-Phase 中有较长的延迟:
当内核将控制权传递给会话管理器进程 (Smss.exe) 时,SMSSInit 子阶段开始。在此子阶段,系统初始化注册表,加载并启动未标记为 BOOT_START 的设备和驱动程序并启动子系统进程。当控制权传递给 Winlogon.exe 时,SMSSInit 结束。
我查看了延迟并发现串行设备(COM 端口连接的设备)的 Init/enum 很慢:
如果您不需要 COM 端口,请在 BIOS/UEFI 中禁用 COM 端口。