Giriş csrss
, csrss.exe
istemci / 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.dll
baş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.dll
kullanıcı kipinden ntoskrnl.exe
çekirdek kipine), oysa çağrılar user32.dll
en 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.exe
olan 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 dumpbin
sahipseniz (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.exe
gibi smss.exe
aslı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, NtCreateFile
Win32'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ı ...