2009-03-12 14 views
5

Qual è lo scopo del csrss.exe (sottosistema Server/Server Runtime Server) su Windows?Cosa fa il processo csrss.exe?

Forse qualcuno potrebbe dare una buona spiegazione o indicazioni alla documentazione? Purtroppo i risultati di Google sono piuttosto rumorosi durante la ricerca di un processo principale di Windows.

Il motivo che mi sto chiedendo è che ho avuto un BSOD dalla mia applicazione di servizio che sembra essere correlato al processo csrss.exe, almeno questo è ciò che l'analisi del dump di memoria mostra:

PROCESS_OBJECT: 85eeeb70 

IMAGE_NAME: csrss.exe 

DEBUG_FLR_IMAGE_TIMESTAMP: 0 
MODULE_NAME: csrss 
FAULTING_MODULE: 00000000 
PROCESS_NAME: PreviewService. 
BUGCHECK_STR: 0xF4_PreviewService. 
DEFAULT_BUCKET_ID: DRIVER_FAULT 
CURRENT_IRQL: 0 
LAST_CONTROL_TRANSFER: from 80998221 to 80876b40 

STACK_TEXT: 
f5175d00 80998221 000000f4 00000003 85eeeb70 nt!KeBugCheckEx+0x1b 
f5175d24 8095b1be 8095b1fa 85eeeb70 85eeecd4 nt!PspCatchCriticalBreak+0x75 
f5175d54 8082350b 00000494 ffffffff 051bf114 nt!NtTerminateProcess+0x7a 
f5175d54 7c8285ec 00000494 ffffffff 051bf114 nt!KiFastCallEntry+0xf8 
051bf114 00000000 00000000 00000000 00000000 ntdll!KiFastSystemCallRet 

STACK_COMMAND: kb 
FOLLOWUP_NAME: MachineOwner 
FAILURE_BUCKET_ID: 0xF4_PreviewService._IMAGE_csrss.exe 
BUCKET_ID: 0xF4_PreviewService._IMAGE_csrss.exe 

Followup: MachineOwner 

EDIT: Grazie già per le buone risposte, ma in realtà non ho bisogno di aiuto per quanto riguarda il mio servizio, vorrei solo avere una comprensione di base di ciò che è lo scopo di questo servizio.

risposta

5

CSRSS ospita il lato server del sottosistema Win32. È considerato un processo critico del sistema e, se viene interrotto, verrà visualizzata una schermata blu. Sono necessari più dati, ma è necessario scoprire se alcuni processi stanno terminando csrss, o se si blocca a causa di un bug.

Windows Internals è un ottimo libro per cose come questa. Wikipedia ha anche un articolo su CSRSS.

1

csrss è la parte in modalità utente del sottosistema Win32, l'analogo in modalità utente al win32.sys in modalità kernel. Per quanto riguarda ciò che accade nel tuo particolare servizio, è difficile dirlo senza alcuni suggerimenti migliori su cosa sta facendo il tuo servizio.

0

Una cosa è fornire la finestra della console predefinita per le app console come cmd.exe. Almeno secondo jdeBP:

On Windows, how does console window ownership work?

Sembrerebbe che quando un processo di console applicazione è creato senza essere passato maniglie a stdin, stdout e stderr, quindi alcune comunicazioni tra processi chiede CSRSS per creare una finestra di console in un nuovo thread e dare i suoi handle di IO al processo della console.