हर बार जब मैं माउस ले जाता हूं तो `csrss.exe` को क्यों बुलाया जाता है?


3

मेरी विंडोज़ xp sp3 बूट और सभी सीपीयू गतिविधि डिम्पल के बाद, मैंने देखा कि क्या होता है जब मैं डेस्कटॉप पर खाली जगह पर हलकों में माउस घुमाता हूँ: पहला exporer.exe कहा जाता है और फिर csrss.exe

में विकिपीडिया लेख सेवा मेरे csrss.exe यह कुछ ऐसा ही कहता है

जब कोई उपयोगकर्ता-मोड प्रक्रिया एक फ़ंक्शन कॉल करती है जिसमें कंसोल विंडो, प्रक्रिया / थ्रेड निर्माण, या साइड-बाय-साइड समर्थन, एक सिस्टम कॉल जारी करने के बजाय, Win32 लाइब्रेरीज़ (कर्नेल 32.dll, user32.dll, gdi32.dll) भेजें CSRSS प्रक्रिया के लिए एक अंतर-प्रक्रिया कॉल जो कर्नेल से समझौता किए बिना अधिकांश वास्तविक कार्य करती है। [१] विंडो मैनेजर और GDI सेवाओं को इसके बजाय एक कर्नेल मोड ड्राइवर (win32k.sys) द्वारा नियंत्रित किया जाता है। [२]

जिससे मुझे लगता है कि मूव मूवमेंट के साथ-साथ हैंडल भी किया जाता है win32k.sys - लेकिन शायद मुझे यह गलतफहमी है।

क्या कोई टुकड़ों को एक साथ रख सकता है? मैं कॉल के सही कारण के बारे में उत्सुक हूं। धन्यवाद।

जवाबों:


2

मुझे याद नहीं है कि मैं इसे कहां पढ़ता हूं लेकिन csrss.exe माउस पॉइंटर को रेंडर करने का काम संभालता है। यह संभवतः इसे संभालने के लिए csrss.exe के लिए सबसे अधिक समझ में आता है क्योंकि यह किसी भी win32 आवेदन को संदेश देने के लिए अच्छी तरह से तैनात है, क्योंकि सभी win32 अनुप्रयोग "इसके तहत" चलाते हैं।


1

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 राज ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.