Neden her hareket ettiğimde `csrss.exe` deniyor?


3

Windows xp sp3'üm önyükleme yaptıktan ve tüm cpu etkinlikleri karardıktan sonra, fareyi masaüstünde boş bir noktaya daire içine aldığımda ne olduğunu gözlemledim: İlk önce exporer.exeve sonra csrss.exe.

In wikipedia makalesinde için csrss.exebuna benzer bir şey söylüyor

Bir kullanıcı modu işlemi, sistem çağrısı vermek yerine, konsol pencereleri, işlem / iş parçacığı oluşturma veya Yan Yana desteği içeren bir işlevi çağırdığında, Win32 kitaplıklarını (kernel32.dll, user32.dll, gdi32.dll) gönderir. Asıl işin çoğunu çekirdekten ödün vermeden yapan CSRSS sürecine süreçler arası çağrı. [1] Pencere yöneticisi ve GDI hizmetleri bunun yerine çekirdek modu sürücüsü (win32k.sys) tarafından gerçekleştirilir. [2]

Bu da beni fare hareketlerinin üstesinden geldiğine inandırıyor win32k.sys- ama belki de yanlış anlıyorum.

Birisi parçaları bir araya getirebilir mi? Aramanın kesin sebebini merak ediyorum. Teşekkürler.

Yanıtlar:


2

Nerede okuduğumu hatırlayamıyorum ama csrss.exe fare işaretçisini oluşturma görevini yerine getiriyor. Tüm win32 uygulamaları "altında" çalıştığından, muhtemelen herhangi bir win32 uygulamasına mesaj gönderebilecek şekilde konumlandırılmış olması nedeniyle csrss.exe aracının çalışması en mantıklı olanıdır.


2

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ı ...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.