Windows I/O की गहराई (भाग 6, अंतिम) — फ़िल्टर ड्राइवर और मिनीफ़िल्टर: Procmon और वायरस स्कैन I/O में क्यों बीच में आ सकते हैं

· · Windows, Win32, I/O, मिनीफ़िल्टर, कर्नेल, डिवाइस ड्राइवर, सुरक्षा, त्रुटि जाँच

शृंखला «Windows I/O की गहराई» का अंतिम भाग।

भाग 1 के डिवाइस स्टैक चित्र में «फ़ाइल सिस्टम फ़िल्टर (एंटीवायरस, एन्क्रिप्शन, Procmon आदि)» बॉक्स खींचने के बाद इस शृंखला में बीच में आने वाले बार-बार आए। Procmon हर I/O रिकॉर्ड क्यों कर सकता है (भाग 1)। «केवल उस वातावरण पर फ़ाइल पहुँच धीमी» (भाग 2)। खोलते ही OneDrive डाउनलोड शुरू करने वाला रीपार्स पॉइंट (भाग 5)। इस बार अंततः उस बीच में आने के तंत्र स्वयं — फ़ाइल सिस्टम फ़िल्टर ड्राइवर और मिनीफ़िल्टर — को सामने रखते हैं, शृंखला की बाकी कड़ियाँ समेटते हैं।

1. निष्कर्ष पहले

  • «I/O में बीच में आना» OS-मान्य विस्तार बिंदु है। फ़ाइल सिस्टम फ़िल्टर फ़ाइल सिस्टम को अनुरोध देख, बदल, अस्वीकृत, स्थान पर संसाधित कर सकता है (अध्याय 2)।1
  • वर्तमान मानक मिनीफ़िल्टर है। डिवाइस स्टैक में सीधे बीच आने वाले लेगेसी तरीके की समस्याएँ (क्रम अनिश्चित, अनलोड न हो पाना) हल करने को Windows के साथ आए फ़िल्टर मैनेजर (FltMgr) पर कॉलबैक पंजीकृत करने के तरीके पर पीढ़ी बदली (अध्याय 2)।23
  • चाल pre/post कॉलबैक है। प्रत्येक ऑपरेशन के पहले और बाद पंजीकरण क्रम = अल्टिट्यूड क्रम से बुलाए जाते हैं। पास-थ्रू, पूरा करना, अस्वीकृत, बदलना — भाग 1 के «ड्राइवर के विकल्प» ज्यों के त्यों (अध्याय 3)।2
  • अल्टिट्यूड (ऊँचाई) क्रम तय करता है। उपयोग-दर समूह को संख्या पट्टी दी गई (Activity Monitor 360000–389999, Anti-Virus 320000–329999 आदि), वॉल्यूम से जुड़े इंस्टेंस-दर अद्वितीय संख्या (अध्याय 4)।45
  • आपके PC के निवासी fltmc से दिखते हैं। Procmon (चलते समय ही), एंटीवायरस, OneDrive का क्लाउड फ़िल्टर — सब यहाँ पंक्ति में (अध्याय 5)।
  • एंटीवायरस बहिष्करण सेटिंग «उस उत्पाद स्वयं का स्कैन छोड़ना» है, अन्य मिनीफ़िल्टर पर प्रभाव नहीं। बहिष्करण सुरक्षा कमज़ोर करने का समझौता है, विकास वॉल्यूम पर Dev Drive (अतुल्यकालिक स्कैन) अधिक सुरक्षित विकल्प है (अध्याय 6)।67
  • «केवल उस वातावरण पर धीमा» जाँच Procmon Duration स्तंभ और fltmc विन्यास तुलना से (अध्याय 7)।

इस लेख का ज्ञान मानचित्र

वर्तमान फ़ाइल सिस्टम फ़िल्टर का मानक मिनीफ़िल्टर है; डिवाइस स्टैक पर डिवाइस ऑब्जेक्ट सीधे चढ़ाने वाले लेगेसी फ़िल्टर से भिन्न, यह Windows के साथ आए फ़िल्टर मैनेजर (FltMgr) पर pre/post कॉलबैक पंजीकृत करने का तरीका है। बुलाए जाने का क्रम Microsoft आवंटित-प्रबंधित अल्टिट्यूड से निर्णायक तय होता है, fltmc कमांड से वास्तविक विन्यास देखा जा सकता है। एंटीवायरस, Procmon, OneDrive क्लाउड सिंक सब उसी तंत्र के निवासी हैं; बहिष्करण सेटिंग उसी उत्पाद स्वयं का स्कैन छोड़ती है और सुरक्षा कमज़ोर करने का समझौता रखती है, विकास वॉल्यूम के लिए Dev Drive अधिक सुरक्षित विकल्प है।

फ़िल्टर ड्राइवर और मिनीफ़िल्टर का ज्ञान मानचित्रफ़ाइल सिस्टम फ़िल्टर ड्राइवर, लेगेसी फ़िल्टर से मिनीफ़िल्टर की पीढ़ी बदलना, फ़िल्टर मैनेजर (FltMgr), pre/post कॉलबैक, अल्टिट्यूड और लोड-क्रम समूह, fltmc से अवलोकन, एंटीवायरस मिनीफ़िल्टर तथा बहिष्करण सेटिंग और Dev Drive, Procmon का मिनीफ़िल्टर के रूप में सब I/O रिकॉर्ड करने का तंत्र — इन संबंधों को दर्शाने वाला चित्रलागू करता हैलागू करता हैका उत्तराधिकारीअपेक्षितकारण बन सकतारोकता हैअपेक्षितउपयोग करता हैउपयोग करता हैसे कॉन्फ़िगरसे कॉन्फ़िगरसे जाँच योग्यअपेक्षितपहले करना चाहिएसे जाँच योग्यसे जाँच योग्यउपयोग करता हैउपयोग करता हैउपयोग करता हैसे कॉन्फ़िगरस्वचालित करता हैउपयोग करता हैकारण बन सकताकम करता हैकारण बन सकतासे कॉन्फ़िगरकम करता हैकम करता हैअनुशंसित उपायउपयोग करता हैसे जाँच योग्यउपयोग करता हैउपयोग करता हैअपेक्षितउपयोग करता हैमिनीफ़िल्टरफ़िल्टर मैनेजर (FltMgr)लेगेसी फ़िल्टरफ़ाइल सिस्टम फ़िल्टर ड्राइवरडिवाइस स्टैकलोड क्रम की अस्थिरताpre/post कॉलबैकअल्टिट्यूडलोड-क्रम समूहfltmcअल्टिट्यूड आवेदनProcess Monitor (procmon.exe)एंटीवायरस मिनीफ़िल्टरक्लाउड फ़ाइल फ़िल्टर (cldflt)OneDrive फ़ाइल ऑन डिमांडफ़ास्ट I/Oस्कैन से प्रदर्शन लागतबहिष्करण सेटिंग (फ़ोल्डर बहिष्करण)सुरक्षा स्तर का घटनाDev DriveFltMgr फ़्रेमड्राइवर ऑब्जेक्ट

चित्र में ठोस रेखा हमेशा सत्य रहने वाला संबंध दर्शाती है और धराशायी रेखा सशर्त संबंध दर्शाती है (शर्तें विस्तृत पृष्ठ पर प्रत्येक संबंध के स्पष्टीकरण में दी गई हैं)। संबंधों की पूरी सूची (कुल 35, साक्ष्य और निश्चितता सहित) तथा मुख्य अवधारणाओं की परिभाषाएँ ज्ञान मानचित्र के विस्तृत पृष्ठ पर संकलित हैं (जापानी में)। डेटा: JSON-LD / Turtle

2. बीच में आने वालों का इतिहास — लेगेसी फ़िल्टर से FltMgr तक

फ़ाइल सिस्टम फ़िल्टर ड्राइवर फ़ाइल सिस्टम (या उसके नीचे वॉल्यूम) की ओर अनुरोध बीच में ले सकने वाला ड्राइवर है। अनुरोध रिकॉर्ड, निगरानी, सामग्री बदलना, आगे अस्वीकृत या स्थानापन्न संसाधन तक — एंटीवायरस, एन्क्रिप्शन, बैकअप, पदानुक्रमित संग्रह सॉफ़्टवेयर का आधार।1

पुराना कार्यान्वयन (लेगेसी फ़िल्टर) भाग 1 के डिवाइस स्टैक पर अपना डिवाइस ऑब्जेक्ट सीधे चढ़ाने वाला था। तंत्र सीधा, पर व्यवहार में समस्याएँ भरी थीं — चढ़ने का क्रम लोड क्रम पर निर्भर गारंटी कठिन, एक बार चढ़ने पर सुरक्षित निकलना नहीं (अनलोड नहीं), फ़िल्टरों के बीच संगतता बग का घर।

इसलिए Windows ने फ़िल्टर मैनेजर (FltMgr) लाया। FltMgr स्वयं OS-साथ फ़िल्टर के रूप में स्टैक पर खड़ा, व्यक्तिगत फ़िल्टर कार्य मिनीफ़िल्टर के रूप में FltMgr पर कॉलबैक पंजीकृत करते हैं।2

मिनीफ़िल्टर तरीका (वर्तमान मानक)कॉलबैक पंजीकरणकॉलबैक पंजीकरणफ़िल्टर मैनेजर (FltMgr)OS के साथ। स्टैक पर खड़ा यही एकमिनीफ़िल्टर A (अल्टिट्यूड ऊँचा)मिनीफ़िल्टर B (अल्टिट्यूड नीचा)फ़ाइल सिस्टमक्रम अल्टिट्यूड से निर्णायककिसी भी समय लोड संभव(समर्थित फ़िल्टर अनलोड भी)लेगेसी तरीकालेगेसी फ़िल्टर Aलेगेसी फ़िल्टर Bफ़ाइल सिस्टमक्रम लोड क्रम पर छोड़सुरक्षित अनलोड नहीं

चित्र 1: पीढ़ी बदलाव। स्टैक पर «चढ़ाना» नहीं, FltMgr पर «पंजीकृत करना»

मिनीफ़िल्टर तरीके के लाभ आधिकारिक सूचीबद्ध हैं — कभी भी लोड, क्रम नियंत्रित, अनलोड कॉलबैक लागू फ़िल्टर चलते अनलोड भी (लागू न हो या मना करे तो नहीं उतार सकते)।3 लेगेसी फ़िल्टर साथ चलाने को FltMgr कई «फ़्रेम» के रूप में स्टैक के कई स्थानों पर खड़ा हो सकता है, मिनीफ़िल्टर अनलोड बाद पुनः लोड पर भी उसी स्थान (उसी अल्टिट्यूड) पर लौटता गारंटी है।2 आधुनिक एंटीवायरस, निगरानी, सिंक सॉफ़्टवेयर लगभग सब यही मिनीफ़िल्टर हैं।

3. मिनीफ़िल्टर की चाल — pre/post कॉलबैक

मिनीफ़िल्टर «किन ऑपरेशन में रुचि» FltMgr को घोषित करता है। उदाहरण IRP_MJ_CREATE (खोलना) और IRP_MJ_WRITE (लिखना) में ही रुचि। तब वह ऑपरेशन बहे हर बार ऑपरेशन के पहले (pre कॉलबैक) और ऑपरेशन के बाद (post कॉलबैक) बुलाए जाते हैं।

NTFSमिनीफ़िल्टर B(अल्टिट्यूड नीचा)मिनीफ़िल्टर A(अल्टिट्यूड ऊँचा)FltMgrI/O मैनेजरNTFSमिनीफ़िल्टर B(अल्टिट्यूड नीचा)मिनीफ़िल्टर A(अल्टिट्यूड ऊँचा)FltMgrI/O मैनेजरअनुरोध (IRP_MJ_CREATE आदि। भाग 1 की दुनिया)pre कॉलबैकpre कॉलबैकफ़ाइल सिस्टम कोसंसाधन परिणामpost कॉलबैकpost कॉलबैकपूरा (भाग 1 के पूरा होने के प्रवाह की ओर)

चित्र 2: pre/post कॉलबैक। जाते अल्टिट्यूड ऊँचे से, लौटते उलटा क्रम

प्रत्येक कॉलबैक पर क्या कर सकते हैं। भाग 1 अध्याय 4.3 के «ड्राइवर के तीन विकल्प» वही ढाँचा अधिक सुरक्षित API से मिलता है।

pre कॉलबैक बुलाया गयाइस ऑपरेशन से क्या करेंपास-थ्रू(post भी न चाहिए तो वह भी घोषित)अस्वीकृतपहुँच अस्वीकृत आदि तुरंत लौटाएँउदा.: वायरस पकड़ा, लिखना मनास्वयं पूरा करेंउदा.: क्लाउड फ़िल्टरपदार्थ लाकर सौंपेपैरामीटर या सामग्री बदलकर बहने देंउदा.: एन्क्रिप्शन फ़िल्टर

चित्र 3: pre कॉलबैक के विकल्प। «देखना, रोकना, स्थान लेना, बदलना» सब आधिकारिक संभव

और भाग 4 का होमवर्क यहाँ समेटता है — मिनीफ़िल्टर फ़ास्ट I/O (IRP न बनाने वाला छोटा रास्ता) पर भी उपस्थित रह सकता है। FltMgr फ़ास्ट I/O पथ पर भी कॉलबैक तंत्र चलाता है, लेगेसी युग जैसा «छोटा रास्ता लिया तो नहीं दिखता» नहीं। Procmon लॉग में FASTIO_ पंक्तियाँ भी इसलिए, इसी स्थान के कारण।

4. अल्टिट्यूड — «ऊँचाई» क्रम तय करती है

कई फ़िल्टर एक ही ऑपरेशन में रुचि रखें तो कौन पहले देखे गंभीर प्रश्न है। एन्क्रिप्शन से पहले एंटीवायरस न देखे तो साइफ़रटेक्स्ट स्कैन करना पड़ता है, निगरानी उपकरण सब से ऊपर न हो तो पूरा नहीं देख सकता।

यह क्रम तय करता अल्टिट्यूड (altitude: ऊँचाई) है। फ़िल्टर प्रकार-दर लोड-क्रम समूह और संख्या पट्टी परिभाषित। सटीक: अल्टिट्यूड ड्राइवर पूरे पर नहीं, वॉल्यूम से जुड़े मिनीफ़िल्टर «इंस्टेंस» पर लगता है। संख्या अद्वितीय, बड़ी संख्या स्टैक के ऊपर (ऐप की ओर)।4 एक ड्राइवर कई इंस्टेंस परिभाषाएँ रख अलग ऊँचाई पर दिख सकता है, fltmc instances सूची इंस्टेंस इकाई इसीलिए।

ऐप की ओर (संख्या बड़ी)FSFilter Activity Monitor: 360000–389999I/O निगरानी · रिकॉर्ड (Procmon यहाँ)FSFilter Undelete: 340000–349999हटाई फ़ाइल पुनर्स्थापनाFSFilter Anti-Virus: 320000–329999वायरस पकड़ना · हटानाFSFilter Replication: 300000–309999रिमोट पर प्रतिलिपिFSFilter Continuous Backup: 280000–289999निरंतर बैकअपऔर नीचे: Content Screener /Quota Management / System Recovery /एन्क्रिप्शन · संपीड़न आदि पट्टियाँ जारीफ़ाइल सिस्टम की ओर (संख्या छोटी)

चित्र 4: अल्टिट्यूड पट्टी (उद्धरण)। उपयोग-दर «खड़े होने की ऊँचाई» तय

महत्वपूर्ण: यह संख्या Microsoft आवंटित-प्रबंधित है।5 विक्रेता स्वयं न घोषित करें, आवेदन कर लें — इसलिए हर PC पर «निगरानी एंटीवायरस से ऊपर, एंटीवायरस एन्क्रिप्शन से ऊपर» व्यवस्था बनी रहती है। लेगेसी युग के «लोड-क्रम जुआ» का यही उत्तर था।

अपनी कंपनी का मिनीफ़िल्टर बनाते आवेदन स्थान। डेवलपर के लिए अगला एक कदम। अल्टिट्यूड Request a Filter Altitude Identifier प्रक्रिया के अनुसार विषय «Filter altitude request» रखकर fsfcomm@microsoft.com को अंग्रेज़ी ईमेल भेजकर आवेदन करें। कंपनी नाम, संपर्क (व्यक्ति नहीं, लंबे उपयोग कंपनी उपनाम), उत्पाद नाम, उत्पाद URL, फ़िल्टर विवरण, ड्राइवर फ़ाइल नाम, फ़िल्टर प्रकार, स्टार्ट प्रकार, इच्छित लोड-क्रम समूह और इच्छित अल्टिट्यूड सब भरना आवश्यक। प्रसंस्करण 30 व्यावसायिक दिन मानें, आपात खिड़की नहीं, आवंटित संख्या इच्छा से भिन्न हो सकती है — यह भी लिखा है।8 उसी लोड-क्रम समूह में पहले से पूर्णांक अल्टिट्यूड रखने वाली कंपनी उस संख्या पर दशमलव जोड़ मान (उदा. 325000.3) स्वयं तय कर सकती है, तब बाद ईमेल सूचना काफी।8

5. निवासी परिचय — fltmc से अपना PC देखें

सिद्धांत यहीं तक, वास्तविक देखें। व्यवस्थापक कमांड प्रॉम्प्ट से:

:: Registered minifilters (with altitudes)
fltmc

:: Which filter is attached to which volume
fltmc instances

:: From the volume side
fltmc volumes

बिना तर्क fltmc fltmc filters जैसी सूची देता है। आउटपुट 4 स्तंभ, Microsoft दस्तावेज़ में भी वही रूप का उदाहरण है।9

C:\Windows\system32>fltmc

Filter Name                     Num Instances    Altitude    Frame
------------------------------  -------------  ------------  -----
bindflt                                 1        409800         0
cldflt                                  1        409500         0
WdFilter                                4        328010         0
luafv                                   1        135000         0
FileInfo                                4         45000         0

ऊपर स्पष्टीकरण के लिए उद्धरण है। चेहरे और इंस्टेंस संख्या वातावरण-दर अलग, पर अल्टिट्यूड संख्या Microsoft आवंटित स्थिर मान है, अध्याय 4 की प्रकाशित सूची से मिला सकते हैं।

स्तंभ का अर्थ:

स्तंभ अर्थ
Filter Name फ़िल्टर (ड्राइवर) का नाम
Num Instances कितने वॉल्यूम से जुड़ा (अध्याय 4 के इंस्टेंस की संख्या)
Altitude अल्टिट्यूड। बड़ा तो ऐप की ओर
Frame FltMgr फ़्रेम संख्या। यहाँ <Legacy> हो तो FltMgr न उपयोग करने वाला लेगेसी फ़िल्टर जीवित होने का चिह्न।9

इन पाँच पंक्तियों से भी bindflt और cldflt सबसे ऊपर FSFilter Top पट्टी (400000–409999), WdFilter Anti-Virus पट्टी (320000–329999), FileInfo सबसे नीचे FSFilter Bottom पट्टी (40000–49999) पर हैं पढ़ा जा सकता है। अध्याय 4 का «उपयोग-दर खड़े होने की ऊँचाई तय» ढाँचा संख्या से पुष्ट होता है। और Procmon चलाकर फिर fltmc चलाएँ तो Activity Monitor पट्टी (360000–389999) में PROCMON से शुरू पंक्ति एक बढ़ती है

वातावरण से चेहरे बदलते हैं, पर प्रतिनिधि निवासी इस शृंखला के नियमित हैं।

  • WdFilter — Microsoft Defender का मिनीफ़िल्टर। Anti-Virus पट्टी पर। अधिकतर PC पर सब फ़ाइल I/O अवश्य गुज़रने वाला नाका।
  • cldflt — क्लाउड फ़ाइल फ़िल्टर। OneDrive फ़ाइल ऑन डिमांड की कार्य टुकड़ी, भाग 5 के रीपार्स पॉइंट (प्लेसहोल्डर) खुलते पदार्थ तैयार करता है।10
  • PROCMON24 (आदि) — Process Monitor चलाते समय ही दिखने वाला Activity Monitor पट्टी का अस्थायी मिनीफ़िल्टर। Procmon हर I/O क्यों देख सकता है, यही रहस्योद्घाटन है11 चलाने पहले-बाद fltmc चलाकर तुलना करें।
  • अन्य: बैकअप सॉफ़्टवेयर, एन्क्रिप्शन (डेटा रिसाव रोक) उत्पाद, EDR, वर्चुअलाइज़्ड स्टोरेज — व्यावसायिक PC जितना निवासी बढ़ते हैं।

भाग 1 से चला Procmon उपकरण अंतिम भाग में औज़ार पेटी के बाहर से देखें तो «निरीक्षक भी निरीक्षण लक्ष्य जैसे तंत्र का निवासी था» सुंदर चक्र बनता है।

6. एंटीवायरस समय कहाँ खर्च करता है

फ़िल्टर का सबसे बड़ा व्यावहारिक प्रभाव एंटीवायरस स्कैन लागत है। समय कहाँ उत्पन्न होता है, चित्र में (उत्पाद से विवरण भिन्न। नीचे प्रतिनिधि रूप)।

NTFSAV मिनीफ़िल्टरऐपNTFSAV मिनीफ़िल्टरऐपpre-create: पथ या नीति की पूर्व जाँचन स्कैन की फ़ाइल हो तोयहाँ सामग्री स्कैन करसमस्या हो तो खोलना रद्द── खोलना धीमा होने का मुख्य कारणबदली फ़ाइलबंद करते आदि पुनः स्कैन लक्ष्यबड़ी संख्या छोटी फ़ाइलें (बिल्ड मध्य उत्पाद आदि) परयह आना-जाना फ़ाइल संख्या जितना जमा होता हैफ़ाइल खोलनाजाने दें (खोलना निष्पादित)खोलना सफल (post-create)समस्या न हो तो हैंडल लौटता हैलिखना · बंद करना

चित्र 5: स्कैन लागत का उत्पत्ति स्थान। प्रति फ़ाइल थोड़ा, दसियों हज़ार फ़ाइलें हों तो प्रबल

इसे मानकर दो व्यावहारिक विषय सटीक समझे जाते हैं।

बहिष्करण सेटिंग का तकनीकी अर्थ। बहिष्करण सूची से मेल पथ के I/O पर फ़िल्टर का स्कैन छूटता है। फ़िल्टर स्टैक से गायब नहीं, «जाँच न करें» निर्णय जल्दी — यही यथार्थ। और एक महत्वपूर्ण सीमा — बहिष्करण उसी सेटिंग वाले उत्पाद स्वयं के फ़िल्टर पर ही लगता है। Microsoft Defender बहिष्करण WdFilter का स्कैन बदलता है, साथ बैठे अन्य मिनीफ़िल्टर (अन्य कंपनी एंटीवायरस, EDR, बैकअप, एन्क्रिप्शन) के व्यवहार पर कुछ प्रभाव नहीं। «बहिष्करण लगाया फिर भी धीमा» हो तो दूसरा निवासी समय खर्च रहा संदेह करें (अध्याय 7 की fltmc तुलना)। प्रभाव बड़ा, दूसरी ओर बहिष्करण उस स्थान की सुरक्षा निश्चित कमज़ोर करता है। Microsoft दस्तावेज़ भी बहिष्करण रक्षा घटाता है इसलिए जोखिम मूल्यांकन पर न्यूनतम, बार-बार चेतावनी देता है।6 गलत पहचान और प्रदर्शन प्रभाव का व्यवहार «स्व-विकसित Windows ऐप वायरस माना जाए तो» में है।

Dev Drive नामक नया उत्तर। विकास कार्यभार (बड़ी संख्या छोटी फ़ाइलें) के लिए डिज़ाइन समर्पित वॉल्यूम, Microsoft Defender प्रदर्शन मोड (अतुल्यकालिक स्कैन) चलता है। फ़ोल्डर बहिष्करण का अधिक सुरक्षित विकल्प माना गया; डिफ़ॉल्ट अतिरिक्त फ़िल्टर नहीं जुड़ते, दूसरी ओर फ़िल्टर सब उतारकर चलाने पर कड़ी चेतावनी भी लिखी है।7 «बिल्ड तेज़ चाहिए पर बहिष्करण डर लगता है» का वर्तमान Microsoft अनुशंसित उत्तर।

7. «केवल उस वातावरण पर धीमा» जाँच प्रक्रिया

शृंखला में जमा उपकरण अंत में एक प्रक्रिया में बाँधें।

हाँहाँनहींनहीं (छिटपुट)लक्षण: वही ऐप, विशिष्ट वातावरण पर हीफ़ाइल पहुँच धीमीProcmon Duration स्तंभ देखेंकौन सा ऑपरेशन (IRP_MJ_CREATE? WRITE?)समय खा रहा हैविशिष्ट ऑपरेशन एकसमान धीमा?fltmc instances तेज़ वातावरण से तुलनाफ़िल्टर विन्यास का अंतर देखेंअंतर वाला फ़िल्टर कारण?बहिष्करण (जोखिम मूल्यांकन सहित) याDev Drive विचार · विक्रेता से परामर्शफ़िल्टर के अलावा संदेह:कैश (भाग 4) · विखंडन या MFT (भाग 5) ·नेटवर्क गंतव्य (UNC) · डिवाइस स्वयं

चित्र 6: फ़िल्टर-कारण धीमेपन का विभाजन। कुंजी «ऑपरेशन-दर समय» और «वातावरणों के बीच फ़िल्टर विन्यास अंतर»

दो बिंदु। पहला, Procmon ऑपरेशन-दर समय (Duration) रखता है। «धीमा» को «कौन सा ऑपरेशन धीमा» में तोड़ सकें तो अपराधी खोज आधी खत्म। दूसरा, वातावरण अंतर प्रायः फ़िल्टर विन्यास अंतर। विकास मशीन और उत्पादन, अपनी PC और ग्राहक PC — fltmc आउटपुट साथ रखें तो संदेह के उम्मीदवार दिखते हैं।

Procmon कभी न छुआ हो तो पहले तीन कदम। Duration स्तंभ डिफ़ॉल्ट दिखता नहीं, इसलिए यहाँ न रुकें, ऑपरेशन लिखते हैं।

  1. व्यवस्थापक के रूप में Procmon.exe चलाएँ।
  2. Options मेनू > Select Columns… खोलें, स्तंभ सूची से Duration जाँचें।
  3. Filter मेनू > Filter… (Ctrl+L) में Process Name / is / लक्ष्य exe नाम / Include डालें, Add बटन दबाकर OK (Add न दबाएँ तो शर्त नहीं लगती)।

फिर Duration स्तंभ क्लिक कर सॉर्ट करें तो समय खाने वाले ऑपरेशन ऊपर आते हैं। प्रक्रिया-दर, फ़ाइल-दर सारांश Tools मेनू > File Summary भी चलता है। ProcMon ऑपरेशन सामान्य «Process Monitor (ProcMon) व्यावहारिक मार्गदर्शिका» में है।

8. शृंखला का समापन — 6 भागों का मानचित्र

अब भाग 1 में खींचे मानचित्र के सब बॉक्स खुले। पूरा एक चित्र में।

पूरा होना यहाँ लौटता हैकैश-सक्षम I/O सहयोग(फ़ाइल सिस्टम कैश सुविधा बुलाता है)इंटरप्ट → पूरा (भाग 1)एप्लिकेशनReadFile / WriteFile / async-awaitभाग 2: तुल्यकालिक · अतुल्यकालिक I/Oहैंडल मोड और OVERLAPPEDभाग 3: IOCP और .NET थ्रेड पूलपूरा होना लेना और जारी रखनाभाग 1: I/O मैनेजर और IRPनाम समाधान · तीन ऑब्जेक्ट · डिवाइस स्टैकभाग 6: फ़िल्टर और मिनीफ़िल्टरFltMgr · अल्टिट्यूड · pre/postभाग 4: कैश मैनेजर256KB व्यू · lazy writer · फ़ास्ट I/O(NTFS से सहयोग कर चलता है)भाग 5: NTFSMFT · स्ट्रीम · लिंक · दो जर्नलस्टोरेज स्टैक और डिवाइस

चित्र 7: शृंखला का पूरा मानचित्र। कैश मैनेजर «गुज़रने वाली परत» नहीं फ़ाइल सिस्टम का सहयोगी साथी है, कैश मिस पर NTFS से स्टोरेज को अनुरोध निकलता है

9. सारांश — शृंखला के अंत पर

अंतिम भाग का सारांश।

  • I/O में बीच आना OS-मान्य विस्तार बिंदु है, वर्तमान मानक FltMgr पर कॉलबैक पंजीकरण (मिनीफ़िल्टर)। क्रम अल्टिट्यूड से निर्णायक, Microsoft संख्या आवंटित-प्रबंधित करता है।245
  • चाल pre/post कॉलबैक। पास-थ्रू, अस्वीकृत, स्थान लेना, बदलना, फ़ास्ट I/O पर भी उपस्थित। Procmon, Defender, OneDrive सब इसी तंत्र के निवासी।11110
  • बहिष्करण सेटिंग = स्कैन छोड़ना, सुरक्षा से समझौता। विकास वॉल्यूम पर Dev Drive (अतुल्यकालिक स्कैन) अधिक सुरक्षित विकल्प।67
  • «केवल उस वातावरण पर धीमा» Procmon Duration और fltmc विन्यास अंतर से काटें — शृंखला के उपकरण ज्यों के त्यों जाँच प्रक्रिया बनते हैं।

और शृंखला पूरे का निष्कर्ष एक पंक्ति में — Windows I/O नामस्थान से गंतव्य तय कर अनुरोध पैकेट (IRP) बना परतें बहाता है, प्रत्येक परत «देखना, रखना, स्थान लेना» चुन सके, ऐसा सुसंगत डिज़ाइन हैFile.ReadAllText की एक पंक्ति के नीचे ये छह भाग की संरचना हर बार चलती है। API व्यवहार रटने के स्थान पर इस मानचित्र से «ऐसा ही होना चाहिए» निकाल सकना — यही शृंखला से चाहिए थी शक्ति। लंबी यात्रा साथ देने के लिए धन्यवाद।

संबंधित लेख

संबंधित परामर्श क्षेत्र

KomuraSoft LLC «विशिष्ट वातावरण पर ही धीमा», «सुरक्षा सॉफ़्टवेयर और अपना ऐप टकराते हैं» जैसे फ़िल्टर ड्राइवर जुड़े Windows व्यावसायिक ऐप प्रदर्शन समस्या और त्रुटि जाँच सँभालता है।

संदर्भ लिंक

  1. Microsoft Learn, About file system filter drivers. फ़ाइल सिस्टम फ़िल्टर ड्राइवर फ़ाइल सिस्टम या अन्य फ़िल्टर ड्राइवर की ओर अनुरोध बीच में ले सकने वाला वैकल्पिक ड्राइवर है; अनुरोध बीच में लेकर मूल गंतव्य तक पहुँचने से पहले सुविधा विस्तार-स्थानापन्न, रिकॉर्ड, निगरानी, डेटा बदलना, व्यवहार रोकना संभव; एंटीवायरस यूटिलिटी, एन्क्रिप्शन प्रोग्राम, पदानुक्रमित संग्रह प्रबंधन सिस्टम फ़िल्टर ड्राइवर के उदाहरण।  2 3

  2. Microsoft Learn, Filter Manager Concepts. फ़िल्टर मैनेजर (FltMgr) Windows के साथ कर्नेल-मोड ड्राइवर है, मिनीफ़िल्टर ड्राइवर विकास सरल करने वाली सुविधाएँ प्रकाशित करता है; मिनीफ़िल्टर I/O ऑपरेशन के पहले-बाद (pre/post कॉलबैक) संसाधन पंजीकृत कर सकता है; लेगेसी फ़िल्टर साथ चलाने को FltMgr फ़्रेम के रूप में I/O स्टैक के कई स्थानों पर अटैच हो सकता है; मिनीफ़िल्टर अनलोड-पुनः लोड पर भी उसी फ़्रेम के उसी अल्टिट्यूड पर लौटता है।  2 3 4 5

  3. Microsoft Learn, Advantages of the Filter Manager Model. मिनीफ़िल्टर मॉडल लेगेसी फ़िल्टर मॉडल की तुलना में फ़िल्टर लोड क्रम बेहतर नियंत्रण, लेगेसी के विपरीत किसी भी समय लोड, अनलोड संभव, DAX वॉल्यूम से जुड़ना आदि लाभ।  2

  4. Microsoft Learn, Load order groups and altitudes for minifilter drivers. फ़ाइल सिस्टम फ़िल्टर के लिए उपयोग-दर लोड-क्रम समूह परिभाषित, प्रत्येक समूह को अल्टिट्यूड दायरा; सब फ़िल्टर ड्राइवर अद्वितीय अल्टिट्यूड पहचानकर्ता रखते हैं जो I/O स्टैक में अन्य फ़िल्टर के सापेक्ष स्थान तय करता है; समूह उदाहरण FSFilter Activity Monitor (360000–389999, I/O निगरानी और रिपोर्ट), FSFilter Undelete (340000–349999), FSFilter Anti-Virus (320000–329999, फ़ाइल I/O में वायरस पकड़ना-हटाना), FSFilter Replication (300000–309999), FSFilter Continuous Backup (280000–289999)।  2 3

  5. Microsoft Learn, Allocated altitudes. मिनीफ़िल्टर अल्टिट्यूड Microsoft आवंटित-प्रबंधित, प्रकाशित आवंटित अल्टिट्यूड सूची रखी जाती है; उस सूची में WdFilter.sys FSFilter Anti-Virus समूह 328010, cldflt.sys FSFilter Top समूह 409500।  2 3

  6. Microsoft Learn, Configure and validate exclusions for Microsoft Defender Antivirus. Microsoft Defender बहिष्करण सेटिंग से बहिष्कृत फ़ाइल, फ़ोल्डर, प्रक्रिया स्कैन लक्ष्य से बाहर; बहिष्करण सुरक्षा स्तर घटाता है इसलिए आवश्यकता मूल्यांकन कर सावधानी से परिभाषित करें, बार-बार चेतावनी।  2 3

  7. Microsoft Learn, Set up a Dev Drive on Windows 11. Dev Drive विकास कार्यभार के लिए डिज़ाइन वॉल्यूम, Microsoft Defender प्रदर्शन मोड (अतुल्यकालिक स्कैन) चलता है; गति और प्रदर्शन सोचते फ़ोल्डर बहिष्करण का सुरक्षित विकल्प (secure alternative to folder exclusions); अतिरिक्त फ़िल्टर डिफ़ॉल्ट Dev Drive से नहीं जुड़ते; एंटीवायरस फ़िल्टर उतारकर चलाना गंभीर सुरक्षा जोखिम, चेतावनी।  2 3

  8. Microsoft Learn, Request a Filter Altitude Identifier. नया फ़िल्टर अल्टिट्यूड आवेदन विषय «Filter altitude request» ASCII पाठ ईमेल fsfcomm@microsoft.com को भेजने से; कंपनी नाम, संपर्क ईमेल (व्यक्ति नहीं लंबे कंपनी उपनाम), उत्पाद नाम, उत्पाद URL, फ़िल्टर विवरण, फ़िल्टर फ़ाइल नाम, फ़िल्टर प्रकार, स्टार्ट प्रकार, इच्छित लोड-क्रम समूह, इच्छित अल्टिट्यूड सब भरना आवश्यक; प्रसंस्करण 30 व्यावसायिक दिन मानें, इस प्रक्रिया के अलावा आवेदन खिड़की नहीं; Microsoft इच्छा से भिन्न अल्टिट्यूड आवंटित कर सकता है; पहले से पूर्णांक अल्टिट्यूड हो तो उसी लोड-क्रम समूह में दशमलव जोड़ स्वयं अल्टिट्यूड बना बाद सूचना काफी।  2

  9. Microsoft Learn, Blocking legacy file system filter drivers. व्यवस्थापक कमांड प्रॉम्प्ट से fltmc filters चलाएँ तो «Filter Name / Num Instances / Altitude / Frame» चार स्तंभ में फ़िल्टर सूची; Frame स्तंभ <Legacy> वाले FltMgr बिना लेगेसी फ़ाइल सिस्टम फ़िल्टर ड्राइवर, मिनीफ़िल्टर पर Frame में संख्या (0 आदि)।  2

  10. Microsoft Learn, Cloud Files API. क्लाउड फ़ाइल API (क्लाउड फ़िल्टर) क्लाउड पर फ़ाइलें प्लेसहोल्डर के रूप में स्थानीय दिखा पहुँच पर पदार्थ लाने वाले सिंक इंजन (OneDrive फ़ाइल ऑन डिमांड आदि) का आधार।  2

  11. Microsoft Learn, Process Monitor - Sysinternals. Process Monitor फ़ाइल सिस्टम, रजिस्ट्री, प्रक्रिया/थ्रेड गतिविधि रीयल-टाइम दिखाने वाला उन्नत निगरानी उपकरण (लेख के अनुसार चलते fltmc सूची में मिनीफ़िल्टर के रूप में दिखता देखा जा सकता है)।  2

निकटवर्ती विषयों में गहराई से जाने के लिए समान टैग वाले नवीनतम लेख।

Windows I/O की गहराई (भाग 4) — कैश मैनेजर: आपका WriteFile डिस्क तक कब पहुँचता है

Windows कैश मैनेजर चित्रों से समझाने वाली शृंखला का भाग 4। फ़ाइल मैपिंग के रूप में लागू कैश, रीड-अहेड और विलंबित लिखना, FlushFileBuffers ...

Windows वर्चुअलाइज़ेशन की गहराई (भाग 2) — वह मेमोरी जिसे कर्नेल भी नहीं देख सकता: VBS, HVCI और Credential Guard कैसे काम करते हैं

संगत हार्डवेयर पर क्लीन इंस्टॉल पर VBS डिफ़ॉल्ट से सक्षम होता है और हाइपरवाइज़र तथा SLAT से कर्नेल से मज़बूत अलगाव बनाता है। यह लेख VTL, ...

Named Pipes व्यवहार में — डिज़ाइन से सुरक्षा तक, Windows की मानक IPC

Named pipes — Windows की मानक इंटर-प्रोसेस कम्युनिकेशन — की व्यावहारिक मार्गदर्शिका। यह लेख प्राथमिक स्रोतों से बाइट और मैसेज मोड का चुना...

ये पृष्ठ विषय को सेवाओं और निर्णयों के व्यापक संदर्भ में रखते हैं।

यह लेख निम्नलिखित सेवाओं से सीधे जुड़ा है।

अक्सर पूछे जाने वाले प्रश्न

इस लेख के विषय पर परामर्श में अक्सर पूछे जाने वाले प्रश्न।

फ़ाइल सिस्टम फ़िल्टर ड्राइवर और मिनीफ़िल्टर में क्या अंतर है?
दोनों «फ़ाइल सिस्टम को I/O अनुरोध में बीच में आने वाले ड्राइवर» हैं, पर बीच में आने की पीढ़ी अलग है। पुराना लेगेसी फ़िल्टर फ़ाइल सिस्टम के डिवाइस स्टैक पर अपना डिवाइस ऑब्जेक्ट सीधे चढ़ाता था; लोड क्रम से स्थान तय होता था इसलिए क्रम गारंटी कठिन, एक बार लोड करने पर सुरक्षित अनलोड न हो पाने जैसी समस्याएँ थीं। वर्तमान मानक मिनीफ़िल्टर Windows के साथ आए फ़िल्टर मैनेजर (FltMgr) पर «इस ऑपरेशन के पहले-बाद बुलाएँ» कॉलबैक पंजीकृत करता है। स्थान अल्टिट्यूड नामक संख्या से निर्णायक तय, किसी भी समय लोड, अनलोड कॉलबैक लागू फ़िल्टर चलते हुए उतारा भी जा सकता है। एंटीवायरस, एन्क्रिप्शन, निगरानी उपकरण, क्लाउड सिंक — आधुनिक फ़िल्टर लगभग सब मिनीफ़िल्टर के रूप में लागू हैं।
एंटीवायरस सॉफ़्टवेयर हर फ़ाइल पहुँच जाँच क्यों सकता है?
OS आधिकारिक रूप से उसी के लिए विस्तार बिंदु देता है। मिनीफ़िल्टर फ़ाइल खोलने, पढ़ने, लिखने जैसे ऑपरेशन के पहले (pre कॉलबैक) और बाद (post कॉलबैक) बुलाए जाने वाला कोड फ़िल्टर मैनेजर पर पंजीकृत कर सकता है। एंटीवायरस फ़िल्टर एंटीवायरस अल्टिट्यूड पट्टी (320000–329999) पर बैठता है, उदाहरण फ़ाइल खोलना सफल होते ही (post-create) सामग्री स्कैन कर समस्या हो तो वह खोलना रद्द कर पहुँच विफल कर सकता है। शृंखला भाग 1 के अनुसार सब फ़ाइल I/O डिवाइस स्टैक बहता है, इसलिए उस रास्ते के तय स्थान पर खड़े हों तो सब पहुँच जाँच सकते हैं। हैक नहीं, OS डिज़ाइन में बना तंत्र है।
एंटीवायरस की बहिष्करण सेटिंग (फ़ोल्डर बहिष्करण) तकनीकी रूप से क्या करती है?
बहिष्करण सूची से मेल पथ के I/O पर उस उत्पाद के फ़िल्टर का स्कैन छोड़वाती है। फ़िल्टर स्वयं स्टैक से गायब नहीं होता; «इस पथ की जाँच न करें» निर्णय जल्दी हो जाता है — यही यथार्थ के निकट समझ है। महत्वपूर्ण सीमा: बहिष्करण उसी सेटिंग वाले उत्पाद स्वयं पर ही लगता है। उदाहरण Microsoft Defender बहिष्करण Defender के फ़िल्टर (WdFilter) का स्कैन बदलता है, साथ बैठे अन्य कंपनी एंटीवायरस, EDR, बैकअप जैसे अन्य मिनीफ़िल्टर के व्यवहार पर प्रभाव नहीं। उत्पाद-दर अलग बहिष्करण चाहिए; «बहिष्करण लगाया फिर भी धीमा» हो तो दूसरा फ़िल्टर कारण हो सकता है। Microsoft दस्तावेज़ बार-बार चेतावनी देता है: बहिष्करण उस स्थान की सुरक्षा कमज़ोर करता है, जोखिम मूल्यांकन के साथ न्यूनतम रखें। विकास उपयोग पर फ़ोल्डर बहिष्करण के सुरक्षित विकल्प के रूप में डिज़ाइन Dev Drive (प्रदर्शन मोड = अतुल्यकालिक स्कैन) विचार योग्य है।
Process Monitor हर I/O कैसे रिकॉर्ड करता है?
Procmon स्वयं स्टार्टअप पर Activity Monitor (गतिविधि निगरानी) अल्टिट्यूड पट्टी के मिनीफ़िल्टर के रूप में फ़िल्टर मैनेजर पर स्वयं पंजीकृत करता है। Procmon चलाते व्यवस्थापक कमांड प्रॉम्प्ट से fltmc चलाएँ तो PROCMON से शुरू नाम का फ़िल्टर सूची में दिखता है। मिनीफ़िल्टर के रूप में सब वॉल्यूम के I/O ऑपरेशन के pre/post पर उपस्थित रहकर कौन सी प्रक्रिया किस फ़ाइल पर क्या ऑपरेशन किया, बिना चूक रिकॉर्ड कर सकता है। शृंखला में देखे IRP और फ़ास्ट I/O शब्द Procmon प्रदर्शन में ज्यों के त्यों आते हैं क्योंकि वह I/O के रास्ते पर ही खड़ा देख रहा है।
विकास मशीन का बिल्ड धीमा हो तो फ़िल्टर ड्राइवर संदेह करें?
संदेह का मूल्य बहुत है। बिल्ड बड़ी संख्या छोटी फ़ाइलों के बनाना-पढ़ना-लिखना-हटाना का ढेर है, प्रत्येक फ़िल्टर समूह (विशेषकर एंटीवायरस स्कैन) की जाँच का लक्ष्य बनता है, इसलिए फ़िल्टर लागत सबसे अधिक उभरने वाला कार्यभार है। जाँच Procmon Duration स्तंभ से समय किस ऑपरेशन में जा रहा है देखें, fltmc instances से वातावरण-दर फ़िल्टर विन्यास अंतर तुलना मूल प्रक्रिया है। उपाय जोखिम मूल्यांकन के बाद बहिष्करण के अलावा विकास वॉल्यूम के लिए डिज़ाइन Dev Drive उपयोग है। Dev Drive पर एंटीवायरस प्रदर्शन मोड (अतुल्यकालिक स्कैन) चलता है, Microsoft इसे बहिष्करण से अधिक सुरक्षित विकल्प मानता है।

लेखक की प्रोफ़ाइल

लेख के लेखक का परिचय पृष्ठ।

Go Komura

KomuraSoft LLC के प्रतिनिधि

Windows सॉफ़्टवेयर विकास, तकनीकी परामर्श और बग जाँच में विशेषज्ञ, विशेष रूप से मौजूदा सिस्टम वाली परियोजनाओं और पुनरुत्पादन में कठिन बग में।

सार्वजनिक लिंक

ब्लॉग पर लौटें