Delen via


Foutopsporing van CSRSS

De Client Server Run-Time Subsystem (CSRSS) is het gebruikersmodusproces dat de onderliggende laag voor de Windows-omgeving beheert.

Opmerking

Vanaf Windows 10 is CSRSS een beveiligd proces en kan alleen fouten worden opgespoord in de kernelmodus.

Zie Windows Internals van Pavel Yosifovich, Mark E. Russinovich, David A. Solomon en Alex Ionescu voor algemene informatie over beveiligde processen en aanvullende specifieke informatie over beveiligde, kritieke code zoals wininit en csrss.

CSRSS-procesgegevens weergeven

Voor het onderzoeken van CSRSS is bepaalde informatie beschikbaar met behulp van kernelfoutopsporing.

Gebruik de !-procesextensie om informatie weer te geven over processen die zijn gekoppeld aan csrss.exe.

0: kd> !process 0 0 csrss.exe
PROCESS ffffe381a583b080
    SessionId: 0  Cid: 027c    Peb: e0c93ef000  ParentCid: 0270
    DirBase: 115478000  ObjectTable: ffffaa87786b67c0  HandleCount: 722.
    Image: csrss.exe

PROCESS ffffe381a68ab140
    SessionId: 1  Cid: 02f4    Peb: 186a447000  ParentCid: 02dc
    DirBase: 143c0e000  ObjectTable: ffffaa87786b5200  HandleCount: 445.
    Image: csrss.exe

Neem een van de bijbehorende processen en stel de context in op die locatie met behulp van de opdracht .process (Procescontext instellen).

0: kd> .process /r /p ffffe381a583b080
Implicit process is now ffffe381`a583b080
Loading User Symbols

Gebruik nu de opdracht dt (Weergavetype) om de processtructuur rechtstreeks weer te geven:

0: kd> dt csrss!_csr_process
   +0x000 ClientId         : _CLIENT_ID
   +0x010 ListLink         : _LIST_ENTRY
   +0x020 ThreadList       : _LIST_ENTRY
   +0x030 NtSession        : Ptr64 _CSR_NT_SESSION
   +0x038 ClientPort       : Ptr64 Void
   +0x040 ClientViewBase   : Ptr64 Char
   +0x048 ClientViewBounds : Ptr64 Char
   +0x050 ProcessHandle    : Ptr64 Void
   +0x058 SequenceNumber   : Uint4B
   +0x05c Flags            : Uint4B
   +0x060 DebugFlags       : Uint4B
   +0x064 ReferenceCount   : Int4B
   +0x068 ProcessGroupId   : Uint4B
   +0x06c ProcessGroupSequence : Uint4B
   +0x070 LastMessageSequence : Uint4B
   +0x074 NumOutstandingMessages : Uint4B
   +0x078 ShutdownLevel    : Uint4B
   +0x07c ShutdownFlags    : Uint4B
   +0x080 Luid             : _LUID
   +0x088 ServerDllPerProcessData : [1] Ptr64 Void

De !peb-extensie kan worden gebruikt om aanvullende informatie weer te geven over het peb-blok (process environment block).