O Subsistema de Tempo de Execução Cliente/Servidor (CSRSS, do inglês Client/Server Runtime Subsystem), ou csrss.exe, é um componente do Windows NT que fornece o lado do espaço de usuário do subsistema do Win32. Nas versões modernas do Windows, ele é principalmente envolvido com gerenciamento de processos e threads, gerenciamento da janela do console, carregamento do side-by-side assembly e o processo de desligamento. Historicamente, ele também foi responsável pelo gerenciamento de janelas e renderização de gráficos, porém, essas operações foram movidas para o modo de kernel a partir do Windows NT 4.0 para melhorar a performance.

Instâncias do CSRSS são marcadas como processos críticos, ou seja, finalizar uma vai travar o sistema, e se o status crítico for removido e uma for finalizada, o sistema vai congelar. Ferramentas de gerenciamento de processos embutidas na maioria das versões do Windows também vão recusar a finalizar instâncias do CSRSS. Em operação normal, há uma instância do CSRSS para cada sessão (duas no Windows Vista e versões mais novas, uma em versões anteriores, ambos assumindo que não há nenhuma conexão RDP ativa que crie mais sessões).

Detalhes técnicos

O CSRSS roda como um serviço de sistema de modo de usuário. Quando um processo de modo de usuário chama uma função envolvendo janelas de console, criação de processos ou threads, ou suporte side-by-side, ao invés de efetuar uma chamada de sistema, as bibliotecas do Win32 (kernel32.dll, user32.dll, gdi32.dll) mandam uma chamada inter-processo para o processo do CSRSS que faz a maior parte do trabalho real sem comprometer o kernel. Porém, serviços do gerenciador de janelas e serviços do GDI são gerenciados por um driver do modo de kernel (win32k.sys).

O CSRSS é chamado junto de winlogon.exe pelo smss.exe na iniciaçização do Windows. Se algum dos arquivos está corrompido ou inacessível, o SMSS vai dizer pro kernel parar o processo de inicialização com uma Tela azul da morte. O código de erro para essa falha é 0xC000021A (STATUS_SYSTEM_PROCESS_TERMINATED).

No Windows 7 e versões posteriores, ao invés de desenhar as janelas de console por si mesmo, o CSRSS invoca subprocessos de conhost.exe para desenhar janelas de console para programas de linha de comando com as permissões desse usuário.

Categoria:Arquitetura do Windows NT