O Gerenciador de Sessão determina quais sessões executar, avaliando
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
para subsistemas obrigatórios e opcionais.
O Windows, por exemplo, é um subsistema que é executado e está listado como
%SystemRoot%\system32\csrss.exe
com vários parâmetros transmitidos. Este é o Client-Server Runtime Server Subsystem e iniciará uma interface gráfica. Ao tentar o seguinte que você não deve tentar em casa
%SystemRoot%\system32\cmd.exe
chegamos a ver algo nos moldes de
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.
que basicamente significa que cmd.exe normalmente sai porque a janela não pode ser criada. No entanto, penso que um programa que inicializa um modo DOS, imprime algo na tela e os loops teriam sucesso. Isso é basicamente algo que chkdsk faz quando é executado durante a inicialização e não seria difícil replicar algo nesse sentido em C ++. No entanto, leva algum tempo para replicar um console completo, a menos que existam boas alternativas de código aberto, onde é necessário reescrever o I / O ...
Portanto, é tecnicamente possível criar um software que permita executar apenas a linha de comando e alternar para uma sessão de linha de comando, mas vejo isso como uma solução difícil para o que você está tentando alcançar. Porque você deve preferir descobrir por que tudo está travado e porque você não pode simplesmente pressionar CTRL + SHIFT + ESC para iniciar seu gerenciador de tarefas e matar com fogo ...
Olhe para capturar um traço e forçando um despejo se você quiser resolver o congelamento vez . :)