csrss
में csrss.exe
क्लाइंट / सर्वर सबसिस्टम के लिए खड़ा है। यह वह हिस्सा है जिससे बात की जाती है win32k.sys
जो - इस भाग के कर्नेल मोड में चले जाने के बाद (NT 3.51 के लिए उपयोगकर्ता मोड में उपयोग किया जाता है) - Win32 सबसिस्टम के "GUI" कार्यक्षमता (विंडो संदेशों सहित) में से अधिकांश के लिए जिम्मेदार है (जैसा कि नाम का अर्थ है)।
विंडोज में कई सबसिस्टम मौजूद हैं और डिफ़ॉल्ट रूप से जब आप डेस्कटॉप पर काम करते हैं या विंडोज सर्विस चलाते हैं तो आप Win32 सबसिस्टम से बंधे प्रोग्राम का उपयोग करेंगे। अन्य बातों के अलावा इसका मतलब है कि kernel32.dll
स्टार्टअप पर कार्यक्रम में लोड किया जाएगा (पहले या दूसरे DLL, सटीक विंडोज संस्करण के आधार पर)।
ज्यादातर kernel32.dll
कॉल कर्नेल में ही समाप्त होता है (के माध्यम से) ntdll.dll
उपयोगकर्ता मोड में ntoskrnl.exe
कर्नेल मोड में), जबकि कॉल से user32.dll
अंत में सबसे अधिक बार win32k.sys
। विभिन्न कार्यक्षमता, विभिन्न स्थान जहां वे समाप्त होते हैं। यह इस बात की भी अंतिम व्याख्या है कि आपके माउस का मूवमेंट क्लाइंट-सर्वर सबसिस्टम को कॉल क्यों करता है। csrss.exe
है Win32 सबसिस्टम और इसलिए सभी gory विवरणों के लिए जिम्मेदार है जो Win32 सबसिस्टम के लिए विशिष्ट हैं, जैसे कि विंडो संदेश। फ़ॉन्ट, विंडो आदि कर्नेल में प्रथम श्रेणी के नागरिक नहीं हैं, जबकि म्यूटेक्स, ईवेंट, फाइलें हैं। लेकिन इसके विस्तार से पूर्व के लिए हैंडलिंग अभी भी कर्नेल में स्थानांतरित कर दी गई है win32k.sys
यहां तक कि अपनी प्रणाली सेवा विवरणक तालिका (SDT या SSDT) भी प्राप्त होती है, जिसका उपयोग कर्नेल सेवाओं को उपयोगकर्ता मोड से सुरक्षित तरीके से कॉल करने के लिए किया जाता है।
Btw: यदि आप एक disassembler या कुछ उपकरण की तरह होता है dumpbin
(विजुअल स्टूडियो के साथ आता है) आप इसे स्वयं देख सकते हैं:
for %i in (user32.dll ntdll.dll kernel32.dll ntoskrnl.exe win32k.sys) do @(echo %i & dumpbin /headers %i|findstr subsystem)
एक विंडोज 7 x64 पर देगा (जब अंदर से चलाया जाएगा 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)
"नेटिव" सबसिस्टम का वास्तव में मतलब है नहीं विंडोज में सबसिस्टम। अर्थात। यह मूल API से सीधे बात करता है (जिसमें Win32 API की कई सीमाएँ नहीं हैं)। कर्नेल मोड ड्राइवरों में कोई सबसिस्टम नहीं है, अर्थात "मूल सबसिस्टम"। साथ ही कुछ कार्यक्रम जो पहले चलते थे winlogon.exe
जैसे कि smss.exe
जो वास्तव में पैदा होता है winlogon.exe
"मूल कार्यक्रम" हैं। एक अच्छा उदाहरण यहाँ है autochk.exe
जो फ़ाइल सिस्टम पर "गंदे" झंडे की जाँच करने के लिए ज़िम्मेदार है और यदि यह सेट है तो एक फ़ाइल सिस्टम जाँच चलाएँ।
देशी एपीआई का एक उदाहरण होगा NtCreateFile
बनाम 32 CreateFile
। हालाँकि, विवरणों की व्याख्या करने के लिए यह एक पुस्तक है। एक सिंहावलोकन के लिए और नब्बे के "विंडोज NT / 2000 मूल एपीआई संदर्भ" कुछ विवरण के लिए Russinovich के "विंडोज इंटरनेशनल" का संदर्भ लें। और देखें undocumented.ntinternals.net तथा अनजाने विंडोज 2000 राज ...