Giriş csrss, csrss.exeistemci / sunucu alt sistemi anlamına gelir. Bu bölüm win32k.sysçekirdek moduna geçtikten sonra (NT 3.51 kullanıcı modundaydı) - Win32 alt sisteminin "GUI" işlevselliğinden (pencere dahil) çoğundan (adından da anlaşılacağı gibi) sorumludur. mesajlar).
Windows'ta birkaç alt sistem var ve masaüstünde çalışırken veya bir Windows servisi çalıştırdığınızda varsayılan olarak Win32 alt sistemine bağlı bir program kullanıyor olacaksınız. Diğer şeylerin yanı sıra, bu kernel32.dllbaşlangıçta programa (tam Windows sürümüne bağlı olarak birinci veya ikinci DLL olarak) yükleneceği anlamına gelir .
kernel32.dllÇağrılar çoğu , çekirdeğin kendisinde sona erer ( ntdll.dllkullanıcı kipinden ntoskrnl.exeçekirdek kipine), oysa çağrılar user32.dllen sık sona erer win32k.sys. Farklı işlevsellik, sona erdikleri farklı yerler. Bu aynı zamanda, fare hareketinizin neden istemci-sunucu alt sistemini aramaya yönlendirdiği konusundaki nihai açıklamadır. csrss.exeolan Win32 alt sistemi ve bu tür pencere mesajları gibi Win32 alt özgü olan tüm kanlı detayları için dolayısıyla sorumlu değildir. Yazı tipleri, pencereler vb. Çekirdekte birinci sınıf vatandaş değildir, oysa mutexes, olaylar, dosyalardır. Ancak eski için taşıma hala uzatma tarafından çekirdeğe taşındıwin32k.sys Çekirdek hizmetlerini kullanıcı modundan güvenli bir şekilde çağırmak için kullanılan kendi sistem hizmeti tanımlayıcı tablosunu (SDT veya SSDT) bile alır.
BTW: Eğer bir sökücüye veya benzeri bir araca dumpbinsahipseniz (Visual Studio ile birlikte gelir) kendiniz kontrol edebilirsiniz:
for %i in (user32.dll ntdll.dll kernel32.dll ntoskrnl.exe win32k.sys) do @(echo %i & dumpbin /headers %i|findstr subsystem)
Windows 7 x64'te verir (içeriden çalıştırıldığında C:\Windows\System32):
user32.dll
6.01 subsystem version
2 subsystem (Windows GUI)
ntdll.dll
6.01 subsystem version
3 subsystem (Windows CUI)
kernel32.dll
6.01 subsystem version
3 subsystem (Windows CUI)
ntoskrnl.exe
6.01 subsystem version
1 subsystem (Native)
win32k.sys
6.01 subsystem version
1 subsystem (Native)
"Yerel" alt sistem aslında Windows'ta alt sistem olmadığı anlamına gelir . Başka bir deyişle, doğrudan yerel API ile konuşur (Win32 API'leri ile ilgili çok fazla sınırlaması yoktur). Çekirdek modu sürücülerinin alt sistemi yoktur, yani "yerel alt sistem". Ayrıca daha önce çalışan programların bazıları winlogon.exegibi smss.exeaslında hangi yumurtlar winlogon.exe"yerli programları" dır. Burada iyi bir örnek autochk.exe, dosya sistemlerindeki "kirli" bayrağını kontrol etmek ve ayarlanmış olup olmadığını kontrol etmek için bir dosya sistemi kontrolü yapmaktan sorumludur.
Yerel bir API örneği, NtCreateFileWin32'ye karşı olabilir CreateFile. Bununla birlikte, ayrıntıları açıklamak için bir kitap gerekir. Genel bir bakış için Russinovich'in "Windows Internals" ına ve bazı detaylar için Nebbett'in "Windows NT / 2000 Yerel API Referansı" na bakın. Ayrıca bkz. Undocumented.ntinternals.net ve Belgelenmemiş Windows 2000 Sırları ...