会话管理器通过评估确定要运行的会话
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
用于必需和可选子系统。
例如,Windows是已运行且列出为的子系统
%SystemRoot%\system32\csrss.exe
传递各种参数。这是Client-Server Runtime Server Subsystem
,并将启动图形界面。当尝试以下内容时,您不应该在家中尝试
%SystemRoot%\system32\cmd.exe
我们可以看到一些类似的东西
C000021a (fatal system error)
The session manager initialization system process terminated unexpectedly
with a status of Ox00000000. (Ox00000000 Ox00000000)
The system has been shut down.
这基本上意味着可以cmd.exe
正常退出,因为无法创建窗口。但是我认为初始化DOS模式,在屏幕上打印某些内容并循环的程序会成功。基本上,这是chkdsk
在引导过程中运行时执行的操作,并且在C ++中沿该行复制内容并不困难。但是,复制一个完整的控制台需要花费很多时间,除非那里有很好的开源替代方案,而这需要重写I / O。
因此,从技术上讲,可以编写仅允许您运行命令行并切换到命令行会话的软件,但是对于您要实现的目标,我认为这是一个艰难的解决方法。因为您宁愿弄清楚为什么一切都挂起以及为什么不能简单地按CTRL+ SHIFT+ ESC启动任务管理器并用火将其杀死...
考虑捕获跟踪和强制转储,如果你想解决而不是冻结。:)