ধারাবাহিক «Windows I/O-এর গভীরতা», শেষ কিস্তি।
১ম কিস্তির ডিভাইস স্ট্যাক চিত্রে «ফাইল সিস্টেম ফিল্টার (ভাইরাস প্রতিরোধ·এনক্রিপশন·Procmon ইত্যাদি)» বাক্স আঁকার পর এই ধারাবাহিকে মাঝে ঢোকা চরিত্ররা বারবার মুখ দেখিয়েছে। Procmon সব I/O রেকর্ড করতে পারে কেন (১ম কিস্তি)। «শুধু সেই পরিবেশে ফাইল অ্যাক্সেস ধীর» (২য় কিস্তি)। খোলার মুহূর্তে OneDrive ডাউনলোড শুরু করা রিপার্স পয়েন্ট (৫ম কিস্তি)। এবার সেই ঢোকার ব্যবস্থা নিজে — ফাইল সিস্টেম ফিল্টার ড্রাইভার ও মিনিফিল্টার — সামনে এনে ধারাবাহিকের সব সূত্র তুলি।
1. আগে উপসংহার
- «I/O-তে ঢোকা» OS স্বীকৃত সম্প্রসারণ বিন্দু। ফাইল সিস্টেম ফিল্টার ফাইল সিস্টেমে অনুরোধ দেখতে, বদলাতে, প্রত্যাখ্যান করতে, ফাইল সিস্টেমের বদলে প্রক্রিয়া করতে পারে (২ অধ্যায়)।1
- এখনকার মান মিনিফিল্টার। ডিভাইস স্ট্যাকে সরাসরি ঢোকা লেগাসি পদ্ধতির সমস্যা (ক্রম অনিশ্চিত·আনলোড অযোগ্য) সারতে Windows-এর সঙ্গে আসা ফিল্টার ম্যানেজার (FltMgr)-এ কলব্যাক নিবন্ধনের পদ্ধতিতে প্রজন্ম বদলেছে (২ অধ্যায়)।23
- চলা pre/post কলব্যাক। প্রতি অপারেশনের আগে ও পরে নিবন্ধন ক্রম = অ্যালটিটিউড ক্রমে ডাকা হয়। সোজা চলা·সম্পূর্ণ·প্রত্যাখ্যান·বদল — ১ম কিস্তিতে দেখা «ড্রাইভারের বিকল্প» সরাসরি ব্যবহার হয় (৩ অধ্যায়)।2
- অ্যালটিটিউড (উচ্চতা) ক্রম স্থির করে। ব্যবহার অনুযায়ী গ্রুপে সংখ্যা ব্যান্ড বরাদ্দ (Activity Monitor 360000〜389999, Anti-Virus 320000〜329999 ইত্যাদি), ভলিউমে অ্যাটাচ হওয়া ইনস্ট্যান্স প্রতি অনন্য সংখ্যা লাগে (৪ অধ্যায়)।45
- আপনার PC-এর বাসিন্দা
fltmcদিয়ে দেখা যায়। Procmon (চালুকালেই), ভাইরাস প্রতিরোধ, OneDrive-এর ক্লাউড ফিল্টার — সবাই এখানে সারিবদ্ধ (৫ অধ্যায়)। - ভাইরাস প্রতিরোধের বাদ সেটিং মানে «সেই পণ্য নিজের স্ক্যান বাদ», অন্য মিনিফিল্টারে প্রভাব ফেলে না। বাদ সুরক্ষা দুর্বল করার ট্রেডঅফ, ডেভেলপমেন্ট ভলিউমে Dev Drive (অ্যাসিঙ্ক্রোনাস স্ক্যান) আরও নিরাপদ বিকল্প আছে (৬ অধ্যায়)।67
- «শুধু সেই পরিবেশ ধীর» তদন্ত Procmon-এর Duration কলাম ও
fltmc-এর কনফিগার তুলনা থেকে (৭ অধ্যায়)।
এই নিবন্ধের জ্ঞান মানচিত্র
এখনকার ফাইলসিস্টেম ফিল্টারের মানদণ্ড মিনিফিল্টার; ডিভাইস স্ট্যাকে সরাসরি ডিভাইস অবজেক্ট চাপায় এমন লেগাসি ফিল্টারের থেকে আলাদা, Windows-এর সঙ্গে আসা ফিল্টার ম্যানেজার (FltMgr)-এ pre/post কলব্যাক নিবন্ধন করার পদ্ধতি। ডাকার ক্রম Microsoft যে অ্যালটিটিউড বরাদ্দ ও পরিচালনা করে তা দিয়ে নির্ধারিতভাবে স্থির, fltmc কমান্ডে বাস্তব কনফিগারেশন দেখা যায়। অ্যান্টিভাইরাস · Procmon · OneDrive-এর ক্লাউড সিঙ্ক সবাই এই একই ব্যবস্থার বাসিন্দা; বাদ সেটিং কেবল সেই পণ্যের নিজের স্ক্যান বাদ দেয় এবং সুরক্ষা দুর্বল করার বিনিময় নিয়ে আসে, উন্নয়ন ভলিউমের জন্য Dev Drive নামে আরও নিরাপদ বিকল্প আছে।
flowchart LR
accTitle: ফিল্টার ড্রাইভার ও মিনিফিল্টারের জ্ঞান মানচিত্র
accDescr: ফাইলসিস্টেম ফিল্টার ড্রাইভার, লেগাসি ফিল্টার থেকে মিনিফিল্টারে প্রজন্ম পরিবর্তন, ফিল্টার ম্যানেজার (FltMgr), pre/post কলব্যাক, অ্যালটিটিউড ও লোড ক্রম গ্রুপ, fltmc দিয়ে পর্যবেক্ষণ, অ্যান্টিভাইরাস মিনিফিল্টার ও বাদ সেটিং · Dev Drive, Procmon যেভাবে মিনিফিল্টার হিসেবে সব I/O রেকর্ড করে তার সম্পর্ক দেখানো চিত্র
minifilter["মিনিফিল্টার"]
filter_manager["ফিল্টার ম্যানেজার (FltMgr)"]
legacy_filter_driver["লেগাসি ফিল্টার"]
filesystem_filter_driver["ফাইলসিস্টেম ফিল্টার ড্রাইভার"]
device_stack["ডিভাইস স্ট্যাক"]
load_order_instability["লোড ক্রমের অস্থিরতা"]
minifilter_callback["pre/post কলব্যাক"]
altitude["অ্যালটিটিউড"]
load_order_group["লোড ক্রম গ্রুপ"]
fltmc["fltmc"]
altitude_request["অ্যালটিটিউডের আবেদন"]
procmon["Process Monitor (procmon.exe)"]
antivirus_minifilter["অ্যান্টিভাইরাস মিনিফিল্টার"]
cloud_filter["ক্লাউড ফাইল ফিল্টার (cldflt)"]
onedrive_files_on_demand["OneDrive-এর ফাইল অন ডিমান্ড"]
fast_io["ফাস্ট I/O"]
scan_performance_cost["স্ক্যানের পারফরম্যান্স খরচ"]
exclusion_setting["বাদ সেটিং (ফোল্ডার বাদ)"]
reduced_protection["সুরক্ষা স্তরের অবনতি"]
dev_drive["Dev Drive"]
frame["FltMgr ফ্রেম"]
driver_object["ড্রাইভার অবজেক্ট"]
legacy_filter_driver -->|"বাস্তবায়ন করে"| filesystem_filter_driver
minifilter -->|"বাস্তবায়ন করে"| filesystem_filter_driver
minifilter -->|"উত্তরসূরি"| legacy_filter_driver
legacy_filter_driver -->|"পূর্বশর্ত"| device_stack
legacy_filter_driver -->|"কারণ হতে পারে"| load_order_instability
minifilter -.->|"প্রতিরোধ করে"| load_order_instability
minifilter -->|"পূর্বশর্ত"| filter_manager
filter_manager -->|"ব্যবহার করে"| minifilter_callback
minifilter -->|"ব্যবহার করে"| minifilter_callback
minifilter -->|"দিয়ে কনফিগার"| altitude
altitude -->|"দিয়ে কনফিগার"| load_order_group
altitude -->|"দিয়ে যাচাই"| fltmc
altitude -.->|"পূর্বশর্ত"| altitude_request
altitude_request -->|"আগে করা উচিত"| minifilter
minifilter -->|"দিয়ে যাচাই"| fltmc
legacy_filter_driver -->|"দিয়ে যাচাই"| fltmc
procmon -->|"ব্যবহার করে"| minifilter
procmon -->|"ব্যবহার করে"| minifilter_callback
antivirus_minifilter -->|"ব্যবহার করে"| minifilter_callback
antivirus_minifilter -->|"দিয়ে কনফিগার"| altitude
cloud_filter -->|"স্বয়ংক্রিয় করে"| onedrive_files_on_demand
minifilter -.->|"ব্যবহার করে"| fast_io
antivirus_minifilter -.->|"কারণ হতে পারে"| scan_performance_cost
exclusion_setting -->|"কমায়"| scan_performance_cost
exclusion_setting -->|"কারণ হতে পারে"| reduced_protection
antivirus_minifilter -->|"দিয়ে কনফিগার"| exclusion_setting
dev_drive -->|"কমায়"| scan_performance_cost
dev_drive -->|"কমায়"| reduced_protection
antivirus_minifilter -->|"প্রস্তাবিত সমাধান"| dev_drive
filter_manager -->|"ব্যবহার করে"| frame
frame -->|"দিয়ে যাচাই"| fltmc
legacy_filter_driver -->|"ব্যবহার করে"| driver_object
minifilter -->|"ব্যবহার করে"| driver_object
filter_manager -->|"পূর্বশর্ত"| device_stack
filter_manager -->|"ব্যবহার করে"| driver_object
চিত্রে, টানা রেখা সবসময় সত্য এমন সম্পর্ককে এবং ভাঙা রেখা শর্তসাপেক্ষ সম্পর্ককে নির্দেশ করে (শর্তগুলো বিস্তারিত পাতায় প্রতিটি সম্পর্কের ব্যাখ্যায় আছে)। সম্পর্কের সম্পূর্ণ তালিকা (মোট 35, প্রমাণ ও নিশ্চয়তার মাত্রাসহ) এবং প্রধান ধারণাগুলোর সংজ্ঞা জ্ঞান মানচিত্রের বিস্তারিত পাতায় সংগ্রহ করা আছে (জাপানি ভাষায়)। তথ্য: JSON-LD / Turtle
2. মাঝে ঢোকাদের ইতিহাস — লেগাসি ফিল্টার থেকে FltMgr-এ
ফাইল সিস্টেম ফিল্টার ড্রাইভার ফাইল সিস্টেম (বা তার নিচের ভলিউম)-এ যাওয়া অনুরোধ কেড়ে নিতে পারে এমন ড্রাইভার। অনুরোধ রেকর্ড, নজরদারি, ভিতর বদল, এমনকি প্রত্যাখ্যান বা বিকল্প প্রক্রিয়া পর্যন্ত — ভাইরাস প্রতিরোধ, এনক্রিপশন, ব্যাকআপ, স্তরিত স্টোরেজ সফটওয়্যারের ভিত্তি।1
পুরনো বাস্তবায়ন পদ্ধতি (লেগাসি ফিল্টার) ১ম কিস্তিতে দেখা ডিভাইস স্ট্যাকে নিজের ডিভাইস অবজেক্ট সরাসরি স্তূপ করত। ব্যবস্থা হিসেবে সরল, কিন্তু বাস্তবে সমস্যায় ভরা — স্তূপের ক্রম লোড ক্রমের উপর নির্ভর করে নিশ্চিত করা কঠিন, একবার স্তূপ করলে নিরাপদে বেরোয় না (আনলোড যায় না), ফিল্টারে ফিল্টারে সামঞ্জস্য বাগের উষ্ণস্থল।
তাই Windows ফিল্টার ম্যানেজার (FltMgr) এনেছে। FltMgr নিজে OS-এর ফিল্টার হিসেবে স্ট্যাকে দাঁড়ায়, প্রতিটি ফিল্টার ফাংশন মিনিফিল্টার হিসেবে FltMgr-এ কলব্যাক নিবন্ধন করে।2
flowchart TB
subgraph OLD["লেগাসি পদ্ধতি"]
L1["লেগাসি ফিল্টার A"]
L2["লেগাসি ফিল্টার B"]
LFS1["ফাইল সিস্টেম"]
L1 --> L2
L2 --> LFS1
NOTE1["ক্রম লোড ক্রমের উপর ছেড়ে<br/>নিরাপদ আনলোড অযোগ্য"]
end
subgraph NEW["মিনিফিল্টার পদ্ধতি (এখনকার মান)"]
FM["ফিল্টার ম্যানেজার (FltMgr)<br/>OS-এর সঙ্গে আসে। স্ট্যাকে দাঁড়ায় শুধু এটা"]
M1["মিনিফিল্টার A (অ্যালটিটিউড উচ্চ)"]
M2["মিনিফিল্টার B (অ্যালটিটিউড নিম্ন)"]
LFS2["ফাইল সিস্টেম"]
FM -. "কলব্যাক নিবন্ধন" .- M1
FM -. "কলব্যাক নিবন্ধন" .- M2
FM --> LFS2
NOTE2["ক্রম অ্যালটিটিউডে নির্ণায়ক<br/>যেকোনো সময়ে লোড যায়<br/>(সমর্থনকারী ফিল্টার আনলোডও যায়)"]
end
চিত্র ১: প্রজন্ম বদল। স্ট্যাকে «স্তূপ» নয়, FltMgr-এ «নিবন্ধন» পদ্ধতিতে
মিনিফিল্টার পদ্ধতির সুবিধা সরকারি তালিকায় — যখন খুশি লোড যায়, ক্রম নিয়ন্ত্রণ যায়, আনলোড কলব্যাক বাস্তবায়ন করা ফিল্টার চালুকালেও আনলোড যায় (বাস্তবায়ন নেই বা প্রত্যাখ্যান করা ফিল্টার খোলা যায় না)।3 লেগাসি ফিল্টারের সঙ্গে সহাবস্থানের জন্য FltMgr একাধিক «ফ্রেম» হিসেবে স্ট্যাকের একাধিক জায়গায় দাঁড়াতে পারে, মিনিফিল্টার আনলোডের পর আবার লোডেও একই অবস্থানে (একই অ্যালটিটিউডে) ফেরে নিশ্চিত।2 আধুনিক ভাইরাস প্রতিরোধ·নজরদারি·সিঙ্ক সফটওয়্যার প্রায় সব এই মিনিফিল্টার।
3. মিনিফিল্টারের চলা — pre/post কলব্যাক
মিনিফিল্টার «কোন অপারেশনে আগ্রহ» FltMgr-কে ঘোষণা করে। যেমন শুধু IRP_MJ_CREATE (খোলা) ও IRP_MJ_WRITE (লেখা)-তে আগ্রহ। তখন সেই অপারেশন বইলে অপারেশনের আগে (pre কলব্যাক) ও অপারেশনের পরে (post কলব্যাক) ডাকা হয়।
sequenceDiagram
participant IOM as I/O ম্যানেজার
participant FM as FltMgr
participant A as মিনিফিল্টার A<br/>(অ্যালটিটিউড উচ্চ)
participant B as মিনিফিল্টার B<br/>(অ্যালটিটিউড নিম্ন)
participant FS as NTFS
IOM->>FM: অনুরোধ (IRP_MJ_CREATE ইত্যাদি। ১ম কিস্তির জগৎ)
FM->>A: pre কলব্যাক
FM->>B: pre কলব্যাক
FM->>FS: ফাইল সিস্টেমে
FS-->>FM: প্রক্রিয়ার ফল
FM-->>B: post কলব্যাক
FM-->>A: post কলব্যাক
FM-->>IOM: সম্পূর্ণ (১ম কিস্তির সম্পূর্ণ প্রবাহে)
চিত্র ২: pre/post কলব্যাক। যাওয়ার পথে অ্যালটিটিউড উচ্চ থেকে নিম্ন, ফেরার পথে উল্টো ক্রমে ডাকা হয়
প্রতি কলব্যাকে কী করা যায়। ১ম কিস্তি ৪.৩ অধ্যায়ের «ড্রাইভারের তিন বিকল্প»-এর একই কাঠামো আরও নিরাপদ API-তে দেওয়া হয়।
flowchart TB
PRE["pre কলব্যাক ডাকা হলো"]
Q{"এই অপারেশন কী করবেন"}
PASS["সোজা চলতে দেওয়া<br/>(postও না লাগলে সেটাও ঘোষণা)"]
DENY["প্রত্যাখ্যান<br/>অ্যাক্সেস প্রত্যাখ্যান ইত্যাদি তৎক্ষণাৎ ফেরানো<br/>উদাহরণ: ভাইরাস ধরা, লেখা নিষেধ"]
DONE["নিজে সম্পূর্ণ করা<br/>উদাহরণ: ক্লাউড ফিল্টার<br/>সত্তা এনে এগিয়ে দেয়"]
MOD["প্যারামিটার বা ভিতরে হাত দিয়ে চালানো<br/>উদাহরণ: এনক্রিপশন ফিল্টার"]
PRE --> Q
Q --> PASS
Q --> DENY
Q --> DONE
Q --> MOD
চিত্র ৩: pre কলব্যাকের বিকল্প। «দেখা·থামানো·বদলে নেওয়া·বদলানো» সব সরকারিভাবে যায়
আর ৪র্থ কিস্তির বাড়ির কাজ এখানে তোলা হয় — মিনিফিল্টার ফাস্ট I/O (IRP না বানিয়ে ছোট পথ)-এও উপস্থিত থাকতে পারে। FltMgr ফাস্ট I/O পথেও কলব্যাক ব্যবস্থা চালিয়ে দেয়, তাই লেগাসি যুগের মতো «ছোট পথ নিলে দেখা যায় না» হয় না। Procmon লগে FASTIO_ সারি পর্যন্ত থাকে এই অবস্থানের জন্য।
4. অ্যালটিটিউড — «উচ্চতা» ক্রম স্থির করে
একাধিক ফিল্টার একই অপারেশনে আগ্রহী হলে কে আগে দেখে গুরুতর প্রশ্ন। এনক্রিপশনের আগে ভাইরাস প্রতিরোধ না দেখলে সাইফারটেক্সট স্ক্যান করতে হয়, নজরদারি টুল সবার উপরে না থাকলে পুরো চিত্র দেখতে পারে না।
এই ক্রম স্থির করে অ্যালটিটিউড (altitude: উচ্চতা)। ফিল্টারের ধরন প্রতি লোড ক্রম গ্রুপ ও সংখ্যা ব্যান্ড সংজ্ঞায়িত। সঠিক করে বললে অ্যালটিটিউড লাগে ড্রাইভার পুরো নয়, ভলিউমে অ্যাটাচ হওয়া মিনিফিল্টারের «ইনস্ট্যান্স»-এ। সংখ্যা অনন্য, বড় সংখ্যা স্ট্যাকের উপরে (অ্যাপের কাছে) অবস্থান করে।4 এক ড্রাইভার একাধিক ইনস্ট্যান্স সংজ্ঞা রেখে আলাদা উচ্চতায় দেখা দিতে পারে, fltmc instances-এর তালিকা ইনস্ট্যান্স একক হওয়ার কারণ এটাই।
flowchart TB
APP["অ্যাপের কাছে (সংখ্যা বড়)"]
G1["FSFilter Activity Monitor: 360000〜389999<br/>I/O পর্যবেক্ষণ·রেকর্ড (Procmon এখানে)"]
G2["FSFilter Undelete: 340000〜349999<br/>মুছে ফেলা ফাইল পুনরুদ্ধার"]
G3["FSFilter Anti-Virus: 320000〜329999<br/>ভাইরাস শনাক্ত·অপসারণ"]
G4["FSFilter Replication: 300000〜309999<br/>রিমোটে প্রতিলিপি"]
G5["FSFilter Continuous Backup: 280000〜289999<br/>নিরবচ্ছিন্ন ব্যাকআপ"]
G6["আরও নিচে: Content Screener /<br/>Quota Management / System Recovery /<br/>এনক্রিপশন·কম্প্রেশন ইত্যাদি ব্যান্ড চলে"]
FS["ফাইল সিস্টেমের কাছে (সংখ্যা ছোট)"]
APP --> G1 --> G2 --> G3 --> G4 --> G5 --> G6 --> FS
চিত্র ৪: অ্যালটিটিউড ব্যান্ড (নির্বাচিত)। ব্যবহার প্রতি «দাঁড়ানো উচিত উচ্চতা» স্থির
জরুরি, এই সংখ্যা Microsoft বরাদ্দ ও পরিচালনা করে।5 ভেন্ডর নিজে নাম বলে না, আবেদন করে পায় — তাই যেকোনো PC-তে «নজরদারি ভাইরাস প্রতিরোধের উপরে, ভাইরাস প্রতিরোধ এনক্রিপশনের উপরে» শৃঙ্খলা থাকে। লেগাসি যুগের «লোড ক্রম লটারি»-র উত্তর এটাই।
নিজের মিনিফিল্টার বানালে আবেদনের জায়গা। ডেভেলপারের জন্য পরের এক পা লিখে রাখি। অ্যালটিটিউড Request a Filter Altitude Identifier ধাপ অনুযায়ী বিষয় «Filter altitude request» করে fsfcomm@microsoft.com-এ ইংরেজি ইমেইল পাঠিয়ে আবেদন করুন। কোম্পানির নাম·যোগাযোগ (ব্যক্তিগত নয় দীর্ঘকাল ব্যবহারযোগ্য কোম্পানি অ্যালিয়াস)·পণ্যের নাম·পণ্য URL·ফিল্টারের ব্যাখ্যা·ড্রাইভারের ফাইল নাম·ফিল্টার ধরন·স্টার্ট ধরন·কাঙ্ক্ষিত লোড ক্রম গ্রুপ ও কাঙ্ক্ষিত অ্যালটিটিউড সব পূরণ লাগে। প্রক্রিয়ায় ৩০ কার্যদিবস ধরুন, জরুরি খাত নেই, বরাদ্দ সংখ্যা কাঙ্ক্ষিত থেকে আলাদা হতে পারে — এসবও লেখা আছে।8 আর একই লোড ক্রম গ্রুপে ইতিমধ্যে পূর্ণসংখ্যা অ্যালটিটিউড আছে এমন কোম্পানি সেই সংখ্যায় দশমিক লাগিয়ে মান (উদাহরণ: 325000.3) নিজে স্থির করতে পারে, সে ক্ষেত্রে পরে ইমেইলে জানালেই চলে।8
5. বাসিন্দা পরিচয় — fltmc দিয়ে দেখা আপনার PC
যুক্তি এ পর্যন্ত, এবার আসল দেখি। প্রশাসক অধিকারের কমান্ড প্রম্পটে:
:: List of registered minifilters, with altitudes
fltmc
:: Which filters are attached to which volumes
fltmc instances
:: View it from the volume side
fltmc volumes
আর্গুমেন্টহীন fltmc fltmc filters-এর একই তালিকা দেয়। আউটপুট ৪ কলাম, 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 বরাদ্দ করা স্থির মান, তাই ৪ অধ্যায়ে বলা প্রকাশিত তালিকার সঙ্গে মেলানো যায়।
কলামের অর্থ এমন।
| কলাম | অর্থ |
|---|---|
| Filter Name | ফিল্টার (ড্রাইভার)-এর নাম |
| Num Instances | কত ভলিউমে অ্যাটাচ (৪ অধ্যায়ের ইনস্ট্যান্সের সংখ্যা) |
| Altitude | অ্যালটিটিউড। বড় হলে অ্যাপের কাছে |
| Frame | FltMgr-এর ফ্রেম নম্বর। এখানে <Legacy> হলে FltMgr ব্যবহার করে না এমন লেগাসি ফিল্টার বেঁচে থাকার চিহ্ন।9 |
এই ৫ সারিতেই bindflt ও cldflt সর্বোচ্চ FSFilter Top ব্যান্ডে (400000〜409999), WdFilter Anti-Virus ব্যান্ডে (320000〜329999), FileInfo সর্বনিম্ন FSFilter Bottom ব্যান্ডে (40000〜49999) আছে পড়া যায়। ৪ অধ্যায়ে দেখা «ব্যবহার প্রতি দাঁড়ানো উচিত উচ্চতা স্থির» কাঠামো সংখ্যায় সরাসরি নিশ্চিত হয়। আর Procmon চালু করে আবার fltmc চালালে Activity Monitor ব্যান্ডে (360000〜389999) PROCMON দিয়ে শুরু সারি একটা বাড়ে।
পরিবেশে মুখ আলাদা, কিন্তু প্রতিনিধি বাসিন্দা এই ধারাবাহিকের নিয়মিত মুখ।
WdFilter— Microsoft Defender-এর মিনিফিল্টার। Anti-Virus ব্যান্ডে। অনেক PC-তে সব ফাইল I/O অবশ্যই পার হওয়া ফাঁড়ি।cldflt— ক্লাউড ফাইলের ফিল্টার। OneDrive ফাইল অন ডিমান্ডের কার্যকরী দল, ৫ম কিস্তিতে দেখা রিপার্স পয়েন্ট (প্লেসহোল্ডার) খুললে সত্তা সাজায়।10PROCMON24(ইত্যাদি) — Process Monitor চালু থাকাকালেই দেখা Activity Monitor ব্যান্ডের অস্থায়ী মিনিফিল্টার। Procmon সব I/O দেখতে পারে তার রহস্য এটাই।11 চালুর আগে-পরেfltmcচালিয়ে তুলনা করুন।- এছাড়া ব্যাকআপ সফটওয়্যার, এনক্রিপশন (তথ্য ফাঁস মোকাবিলা) পণ্য, EDR, ভার্চুয়ালাইজড স্টোরেজ ইত্যাদি — ব্যবসায়িক PC যত বেশি বাসিন্দা তত বাড়ে।
১ম কিস্তি থেকে ব্যবহার করা Procmon টুলকে শেষ কিস্তিতে টুলবক্সের বাইরে থেকে দেখলে «পর্যবেক্ষকও পর্যবেক্ষণের লক্ষ্যের একই ব্যবস্থার বাসিন্দা ছিল» সুন্দর চক্র হয়।
6. ভাইরাস প্রতিরোধ সময় কোথায় খরচ করে
ফিল্টারের বাস্তব প্রভাবে সবচেয়ে বড় ভাইরাস প্রতিরোধের স্ক্যান খরচ। সময় কোথায় জন্মায় চিত্রে (পণ্যে বিস্তার আলাদা। নিচে প্রতিনিধি রূপ)।
sequenceDiagram
participant App as অ্যাপ
participant AV as AV মিনিফিল্টার
participant FS as NTFS
App->>AV: ফাইল খোলা
Note over AV: pre-create: পাথ বা নীতির আগে বিচার
AV->>FS: চলতে দেওয়া (ওপেন চালানো)
FS-->>AV: ওপেন সফল (post-create)
Note over AV: অস্ক্যান ফাইল হলে<br/>এখানে ভিতর স্ক্যান করে<br/>সমস্যা থাকলে ওপেন বাতিল<br/>── খোলা ধীর হওয়ার মূল কারণ
AV-->>App: সমস্যা না থাকলে হ্যান্ডেল ফেরে
App->>AV: লেখা·বন্ধ
Note over AV: বদলানো ফাইল<br/>বন্ধে ইত্যাদি পুনরায় স্ক্যানের লক্ষ্য
Note over App,FS: প্রচুর ছোট ফাইল (বিল্ডের মাঝের ফল ইত্যাদি)-এ<br/>এই আসা-যাওয়া ফাইল সংখ্যায় স্তূপ হয়
চিত্র ৫: স্ক্যান খরচের জন্মস্থান। প্রতি ফাইলে সামান্য, কয়েক হাজার ফাইল হলে প্রধান হয়ে যায়
এটা ধরে দুই বাস্তব বিষয় সঠিক বোঝা যায়।
বাদ সেটিংয়ের প্রযুক্তিগত অর্থ। বাদ তালিকায় মিলে পাথের I/O-তে ফিল্টারের স্ক্যান প্রক্রিয়া বাদ হয়। ফিল্টার স্ট্যাক থেকে মিলিয়ে যায় না, «পরীক্ষা করব না» সিদ্ধান্ত তাড়াতাড়ি হয় — এই বাস্তব। আর একটা জরুরি সীমা — বাদ কাজ করে শুধু সেই সেটিং যে পণ্যের তার নিজের ফিল্টারে। Microsoft Defender-এর বাদ সেটিং বদলায় WdFilter-এর স্ক্যান, পাশাপাশি অন্য মিনিফিল্টার (অন্য কোম্পানির ভাইরাস প্রতিরোধ·EDR·ব্যাকআপ·এনক্রিপশন ইত্যাদি)-এর আচরণে কোনো প্রভাব নেই। «বাদ দিয়েও ধীর» হলে অন্য বাসিন্দা সময় খাচ্ছে সন্দেহ করুন (৭ অধ্যায়ের fltmc তুলনা)। প্রভাব বড় অন্যদিকে বাদ সেই জায়গার সুরক্ষা নিশ্চিত দুর্বল করে। Microsoft নথিও বাদ প্রতিরক্ষা কমায় তাই ঝুঁকি মূল্যায়ন করে ন্যূনতম — বারবার সতর্ক করে।6 ভুল শনাক্তকরণ মোকাবিলা ও পারফরম্যান্স প্রভাবের বাস্তব «নিজের বানানো Windows অ্যাপ ভাইরাস গণ্য হলে»-এ আছে।
Dev Drive নামের নতুন উত্তর। ডেভেলপমেন্ট ওয়ার্কলোড (প্রচুর ছোট ফাইল)-এর জন্য নকশা করা নিবেদিত ভলিউম, Microsoft Defender পারফরম্যান্স মোডে (অ্যাসিঙ্ক্রোনাস স্ক্যান) চলে। ফোল্ডার বাদের আরও নিরাপদ বিকল্প বলে স্থান, ডিফল্টে অতিরিক্ত ফিল্টার অ্যাটাচ হয় না অন্যদিকে ফিল্টার সব খুলে চালানোর বিরুদ্ধে শক্ত সতর্কতাও লেখা আছে।7 «বিল্ড তাড়াতাড়ি চাই কিন্তু বাদ ভয়»-এর এখনকার Microsoft সুপারিশ।
7. «শুধু সেই পরিবেশ ধীর» তদন্ত ধাপ
ধারাবাহিকে জমানো টুল শেষে এক ধাপে সাজাই।
flowchart TB
S["লক্ষণ: একই অ্যাপ তবু নির্দিষ্ট পরিবেশেই<br/>ফাইল অ্যাক্সেস ধীর"]
P1["Procmon-এ Duration কলাম দেখুন<br/>কোন অপারেশন (IRP_MJ_CREATE? WRITE?)-এ<br/>সময় যাচ্ছে"]
Q1{"নির্দিষ্ট অপারেশন সমানভাবে ধীর?"}
F1["fltmc instances দ্রুত পরিবেশের সঙ্গে তুলনা<br/>ফিল্টার কনফিগারের ফারাক দেখুন"]
Q2{"ফারাকের ফিল্টার কারণ?"}
A1["বাদ সেটিং (ঝুঁকি মূল্যায়নসহ) বা<br/>Dev Drive বিবেচনা·ভেন্ডারে পরামর্শ"]
A2["ফিল্টার ছাড়া সন্দেহ:<br/>ক্যাশ (৪র্থ কিস্তি)·খণ্ডীকরণ বা MFT (৫ম কিস্তি)·<br/>নেটওয়ার্ক গন্তব্য (UNC)·ডিভাইস নিজে"]
S --> P1 --> Q1
Q1 -->|"হ্যাঁ"| F1 --> Q2
Q2 -->|"হ্যাঁ"| A1
Q2 -->|"না"| A2
Q1 -->|"না (বিচ্ছিন্ন)"| A2
চিত্র ৬: ফিল্টারজনিত ধীরতা আলাদা করা। চাবি «অপারেশন এককে সময়» ও «পরিবেশের মধ্যে ফিল্টার কনফিগার ফারাক»
পয়েন্ট দুটো। প্রথম, Procmon অপারেশন প্রতি সময় (Duration) রাখে। «ধীর»-কে «কোন অপারেশন ধীর»-এ ভাঙতে পারলে অপরাধী খোঁজা অর্ধেক শেষ। দ্বিতীয়, পরিবেশ ফারাক প্রায়ই ফিল্টার কনফিগারের ফারাক। ডেভ মেশিন ও প্রোডাকশন মেশিন, নিজের PC ও গ্রাহকের PC — fltmc আউটপুট পাশাপাশি রাখলেই সন্দেহের প্রার্থী দেখা যায়।
Procmon কখনো ছোঁয়নি এমন ক্ষেত্রে প্রথম তিন হাত। Duration কলাম ডিফল্টে দেখা যায় না, তাই এখানে আটকে না যাওয়ার জন্য অপারেশনই লিখি।
- প্রশাসক হিসেবে
Procmon.exeচালু করুন। - Options মেনু > Select Columns… খুলে কলাম তালিকা থেকে Duration চেক করুন।
- Filter মেনু > Filter… (Ctrl+L)-এ
Process Name/is/ লক্ষ্য exe নাম /Includeদিয়ে Add বাটন চাপার পর OK করুন (Add না চাপলে শর্ত ঢোকে না)।
তারপর Duration কলামে ক্লিক করে সর্ট করলে সময় খাওয়া অপারেশন উপরে জমা হয়। প্রক্রিয়া একক·ফাইল একক সারাংশে Tools মেনু > File Summaryও ব্যবহার যায়। ProcMon অপারেশন সাধারণ «Process Monitor (ProcMon) বাস্তব নির্দেশিকা»-এ আছে।
8. ধারাবাহিকের শেষ সাজ — ৬ কিস্তির মানচিত্র
এতে ১ম কিস্তিতে আঁকা মানচিত্রের সব বাক্স খোলা হলো। পুরো এক পাতায়।
flowchart TB
APP["অ্যাপ্লিকেশন<br/>ReadFile / WriteFile / async-await"]
API["২য় কিস্তি: সিঙ্ক্রোনাস·অ্যাসিঙ্ক্রোনাস I/O<br/>হ্যান্ডেলের মোড ও OVERLAPPED"]
IOCP["৩য় কিস্তি: IOCP ও .NET থ্রেড পুল<br/>সম্পূর্ণ গ্রহণ ও ধারাবাহিকতা চালানো"]
IOM["১ম কিস্তি: I/O ম্যানেজার ও IRP<br/>নাম সমাধান·তিন অবজেক্ট·ডিভাইস স্ট্যাক"]
FLT["৬ষ্ঠ কিস্তি: ফিল্টার ও মিনিফিল্টার<br/>FltMgr·অ্যালটিটিউড·pre/post"]
CACHE["৪র্থ কিস্তি: ক্যাশ ম্যানেজার<br/>256KB ভিউ·lazy writer·ফাস্ট I/O<br/>(NTFS-এর সঙ্গে সমন্বয় করে কাজ)"]
NTFS["৫ম কিস্তি: NTFS<br/>MFT·স্ট্রিম·লিঙ্ক·দুই জার্নাল"]
HW["স্টোরেজ স্ট্যাক ও ডিভাইস"]
APP --> API
API --> IOM
IOCP -. "সম্পূর্ণ এখানে ফেরে" .-> APP
IOM --> FLT
FLT --> NTFS
NTFS -. "ক্যাশ সক্রিয় I/O সমন্বয়<br/>(ফাইল সিস্টেম ক্যাশ ফাংশন ডাকে)" .- CACHE
NTFS --> HW
HW -. "ইন্টারাপ্ট→সম্পূর্ণ (১ম কিস্তি)" .-> IOCP
চিত্র ৭: ধারাবাহিক পুরোর মানচিত্র। ক্যাশ ম্যানেজার «পার হওয়া স্তর» নয় ফাইল সিস্টেমের সঙ্গে সমন্বয় করা সঙ্গী, ক্যাশ মিসে NTFS থেকে স্টোরেজে অনুরোধ যায়
- ১ম কিস্তি: পুরো চিত্র — সব পড়া-লেখা IRP হয়
- ২য় কিস্তি: সিঙ্ক্রোনাস/অ্যাসিঙ্ক্রোনাস — OVERLAPPED-এর আসল অর্থ
- ৩য় কিস্তি: IOCP — async/await-এর তলঘর
- ৪র্থ কিস্তি: ক্যাশ — আপনার WriteFile কখন ডিস্কে পৌঁছায়
- ৫ম কিস্তি: NTFS — MFT থেকে বোঝা ফাইল সিস্টেম
- ৬ষ্ঠ কিস্তি: ফিল্টার ও মিনিফিল্টার (এই নিবন্ধ) — Procmon ও ভাইরাস স্ক্যান I/O-তে কেন ঢুকতে পারে
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-এর আচরণ মুখস্থ করার বদলে এই মানচিত্র থেকে «এমনই হওয়া উচিত» বের করা — সেই ক্ষমতা এই ধারাবাহিক দিতে চেয়েছিল। লম্বা যাত্রায় সঙ্গী হয়ে ধন্যবাদ।
সম্পর্কিত নিবন্ধ
- Windows I/O-এর গভীরতা (১ম কিস্তি) — সব পড়া-লেখা IRP হয়: I/O সিস্টেমের পুরো চিত্র
- Windows I/O-এর গভীরতা (৪র্থ কিস্তি) — ক্যাশ ম্যানেজার: আপনার WriteFile কখন ডিস্কে পৌঁছায়
- Windows I/O-এর গভীরতা (৫ম কিস্তি) — NTFS-এর অভ্যন্তরীণ কাঠামো: MFT থেকে বোঝা ফাইল সিস্টেম
- Process Monitor (ProcMon) বাস্তব নির্দেশিকা — «সেটিং পড়া হয় না» «ACCESS DENIED» ১০ মিনিটে শনাক্ত
- নিজের বানানো Windows অ্যাপ ভাইরাস গণ্য হলে — Microsoft Defender ভুল শনাক্তকরণ মোকাবিলা ও পারফরম্যান্স প্রভাবের সঙ্গে চলা
- Process Explorer / Handle / VMMap বাস্তব — হ্যাং·লিক·«ফাইল ব্যবহৃত» এই মুহূর্তের অবস্থা থেকে তাড়া
- Windows অ্যাপের নিরাপত্তা ন্যূনতম চেকলিস্ট
সম্পর্কিত পরামর্শ ক্ষেত্র
KomuraSoft LLC «নির্দিষ্ট পরিবেশেই ধীর» «নিরাপত্তা সফটওয়্যার ও নিজের অ্যাপ সংঘাত করে» ধরনের ফিল্টার ড্রাইভার জড়ানো Windows ব্যবসায়িক অ্যাপের পারফরম্যান্স সমস্যা·বাগ তদন্ত সামলায়।
তথ্যসূত্র
-
Microsoft Learn, About file system filter drivers। ফাইল সিস্টেম ফিল্টার ড্রাইভার ফাইল সিস্টেম বা অন্য ফিল্টার ড্রাইভারে যাওয়া অনুরোধ কেড়ে নিতে (ইন্টারসেপ্ট) পারে এমন ঐচ্ছিক ড্রাইভার; অনুরোধ কেড়ে নিয়ে মূল গন্তব্যে যাওয়ার আগে ফাংশন সম্প্রসারণ·প্রতিস্থাপন যায়, অনুরোধ রেকর্ড·নজরদারি·ডেটা বদল·আচরণ প্রতিরোধ যায়; ভাইরাস প্রতিরোধ ইউটিলিটি·এনক্রিপশন প্রোগ্রাম·স্তরিত স্টোরেজ ব্যবস্থাপনা সিস্টেম ফিল্টার ড্রাইভারের উদাহরণ — এসব বিষয়ে। ↩ ↩2 ↩3
-
Microsoft Learn, Filter Manager Concepts। ফিল্টার ম্যানেজার (FltMgr) Windows-এর সঙ্গে আসা কার্নেল মোড ড্রাইভার, মিনিফিল্টার ড্রাইভার ডেভেলপমেন্ট সরল করার ফাংশন প্রকাশ করে; মিনিফিল্টার I/O অপারেশনের আগে-পরে (pre/post কলব্যাক) প্রক্রিয়া নিবন্ধন করতে পারে; লেগাসি ফিল্টারের সঙ্গে সহাবস্থানের জন্য FltMgr ফ্রেম হিসেবে I/O স্ট্যাকের একাধিক জায়গায় অ্যাটাচ হতে পারে; মিনিফিল্টার আনলোড·পুনরায় লোডেও একই ফ্রেমের একই অ্যালটিটিউডে ফেরে — এসব বিষয়ে। ↩ ↩2 ↩3 ↩4 ↩5
-
Microsoft Learn, Advantages of the Filter Manager Model। মিনিফিল্টার মডেল লেগাসি ফিল্টার মডেলের তুলনায় সুবিধা হিসেবে ফিল্টার লোড ক্রমের ভালো নিয়ন্ত্রণ; লেগাসি ফিল্টারের বিপরীতে মিনিফিল্টার যেকোনো সময়ে লোড যায়; আনলোড যায়; DAX ভলিউমে সংযোগ ইত্যাদি তালিকা — এসব বিষয়ে। ↩ ↩2
-
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
-
Microsoft Learn, Allocated altitudes। মিনিফিল্টারের অ্যালটিটিউড Microsoft বরাদ্দ ও পরিচালনা করে, প্রকাশিত বরাদ্দ অ্যালটিটিউড তালিকা রক্ষণাবেক্ষণ হয়; সেই তালিকায় WdFilter.sys FSFilter Anti-Virus গ্রুপের 328010, cldflt.sys FSFilter Top গ্রুপের 409500 হিসেবে আছে — এসব বিষয়ে। ↩ ↩2 ↩3
-
Microsoft Learn, Configure and validate exclusions for Microsoft Defender Antivirus। Microsoft Defender-এর বাদ সেটিংয়ে বাদ লক্ষ্য ফাইল·ফোল্ডার·প্রক্রিয়া স্ক্যানের লক্ষ্য থেকে বাদ যায়; বাদ সুরক্ষা স্তর কমায় তাই প্রয়োজন মূল্যায়ন করে সাবধানে সংজ্ঞায়িত করা উচিত বলে বারবার সতর্ক করা হয় — এসব বিষয়ে। ↩ ↩2 ↩3
-
Microsoft Learn, Set up a Dev Drive on Windows 11। Dev Drive ডেভেলপমেন্ট ওয়ার্কলোডের জন্য নকশা করা ভলিউম, Microsoft Defender পারফরম্যান্স মোডে (অ্যাসিঙ্ক্রোনাস স্ক্যান) চলে; গতি ও পারফরম্যান্স বিবেচনায় ফোল্ডার বাদের নিরাপদ বিকল্প (secure alternative to folder exclusions) বলে স্থান; অতিরিক্ত ফিল্টার ডিফল্টে Dev Drive-এ অ্যাটাচ হয় না; ভাইরাস প্রতিরোধ ফিল্টার খুলে চালানো গুরুতর নিরাপত্তা ঝুঁকি বলে সতর্ক — এসব বিষয়ে। ↩ ↩2 ↩3
-
Microsoft Learn, Request a Filter Altitude Identifier। নতুন ফিল্টার অ্যালটিটিউড আবেদন বিষয় «Filter altitude request»-এর ASCII টেক্সট ইমেইল fsfcomm@microsoft.com-এ পাঠানো পদ্ধতিতে হয়; কোম্পানির নাম·যোগাযোগ ইমেইল (ব্যক্তিগত নয় দীর্ঘকালের কোম্পানি অ্যালিয়াস)·পণ্যের নাম·পণ্য URL·ফিল্টারের ব্যাখ্যা·ফিল্টারের ফাইল নাম·ফিল্টার ধরন·স্টার্ট ধরন·কাঙ্ক্ষিত লোড ক্রম গ্রুপ·কাঙ্ক্ষিত অ্যালটিটিউড সব পূরণ লাগে; প্রক্রিয়ায় ৩০ কার্যদিবস ধরুন, এই ধাপ ছাড়া আবেদনের খাত নেই; Microsoft কাঙ্ক্ষিত থেকে আলাদা অ্যালটিটিউড বরাদ্দ করতে পারে; ইতিমধ্যে পূর্ণসংখ্যা অ্যালটিটিউড থাকলে একই লোড ক্রম গ্রুপে দশমিক লাগিয়ে নিজস্ব অ্যালটিটিউড তৈরি যায়, পরে জানালেই চলে — এসব বিষয়ে। ↩ ↩2
-
Microsoft Learn, Blocking legacy file system filter drivers। প্রশাসক অধিকারের কমান্ড প্রম্পটে
fltmc filtersচালালে «Filter Name / Num Instances / Altitude / Frame» চার কলামে ফিল্টার তালিকা হয়; Frame কলাম<Legacy>হলে FltMgr ছাড়া লেগাসি ফাইল সিস্টেম ফিল্টার ড্রাইভার, মিনিফিল্টারে Frame-এ সংখ্যা (0 ইত্যাদি) থাকে — এসব বিষয়ে। ↩ ↩2 -
Microsoft Learn, Cloud Files API। ক্লাউড ফাইল API (ক্লাউড ফিল্টার) ক্লাউডের ফাইল প্লেসহোল্ডার হিসেবে স্থানীয় দেখিয়ে অ্যাক্সেসে সত্তা আনা সিঙ্ক ইঞ্জিন (OneDrive ফাইল অন ডিমান্ড ইত্যাদি)-এর ভিত্তি — এসব বিষয়ে। ↩ ↩2
-
Microsoft Learn, Process Monitor - Sysinternals। Process Monitor ফাইল সিস্টেম·রেজিস্ট্রি·প্রক্রিয়া/থ্রেডের কার্যক্রম রিয়েল টাইমে দেখানো উন্নত নজরদারি টুল (দেহ অনুযায়ী চালুকালে fltmc তালিকায় মিনিফিল্টার হিসেবে দেখা যায়)। ↩ ↩2
সম্পর্কিত নিবন্ধ
কাছাকাছি বিষয়ে গভীরে যেতে একই ট্যাগযুক্ত সাম্প্রতিক নিবন্ধ।
Windows I/O-এর গভীরতা (৫ম কিস্তি) — NTFS-এর অভ্যন্তরীণ কাঠামো: MFT থেকে বোঝা ফাইল সিস্টেম
NTFS-এর অভ্যন্তরীণ কাঠামো চিত্রে ব্যাখ্যা করা ধারাবাহিকের ৫ম কিস্তি। MFT ও ফাইল রেকর্ড, একাধিক ডেটা স্ট্রিম (Zone.Identifier), হার্ড লিঙ্...
Windows I/O-এর গভীরতা (৪র্থ কিস্তি) — ক্যাশ ম্যানেজার: আপনার WriteFile কখন ডিস্কে পৌঁছায়
Windows-এর ক্যাশ ম্যানেজার চিত্রে ব্যাখ্যা করা ধারাবাহিকের ৪র্থ কিস্তি। ফাইল ম্যাপিং হিসেবে বাস্তবায়িত ক্যাশ, আগে পড়া ও বিলম্বিত লেখা, ...
Windows ভার্চুয়ালাইজেশনের গভীরতা (পর্ব ২) — কার্নেলও দেখতে পায় না এমন মেমরি: VBS, HVCI ও Credential Guard কীভাবে কাজ করে
সামঞ্জস্যপূর্ণ হার্ডওয়্যারে ক্লিন ইনস্টলে VBS ডিফল্টে চালু থাকে এবং হাইপারভাইজার ও SLAT দিয়ে কার্নেলের চেয়ে শক্তিশালী আইসোলেশন তৈরি কর...
নেমড পাইপ ব্যবহারিকভাবে — ডিজাইন থেকে নিরাপত্তা পর্যন্ত Windows-এর মানক IPC
Windows-এর মানক আন্তঃপ্রক্রিয়া যোগাযোগ নেমড পাইপের ব্যবহারিক গাইড। প্রাথমিক উৎস থেকে এই নিবন্ধ বাইট ও মেসেজ মোডের পছন্দ, একাধিক ক্লায়েন...
Windows সার্ভিস অ্যাকাউন্ট বেছে নেওয়া — LocalSystem, ভার্চুয়াল অ্যাকাউন্ট ও gMSA
এখনও Windows সার্ভিস LocalSystem-এ চালাচ্ছেন? এই নিবন্ধ LocalService, NetworkService, ভার্চুয়াল অ্যাকাউন্ট, ডোমেন ব্যবহারকারী ও gMSA-এর ...
সম্পর্কিত বিষয়
এই পৃষ্ঠাগুলো বিষয়টিকে সেবা ও সিদ্ধান্তের বৃহত্তর প্রেক্ষাপটে স্থাপন করে।
Windows-এর প্রযুক্তিগত বিষয়
Windows ডেভেলপমেন্ট, বাগ তদন্ত ও বিদ্যমান সম্পদ ব্যবহারের প্রবেশদ্বার।
এই বিষয়ের সাথে সম্পর্কিত সেবা
নিবন্ধটি নিচের সেবাগুলোর সাথে সরাসরি সম্পর্কিত।
Windows অ্যাপ ডেভেলপমেন্ট
ব্যবসায়িক অ্যাপ, ডিভাইস ইন্টিগ্রেশন ও যোগাযোগ টুল, চাহিদা থেকে ডেভেলপমেন্ট পর্যন্ত।
প্রায়শ জিজ্ঞাসিত প্রশ্ন
এই নিবন্ধের বিষয়ে পরামর্শে প্রায়ই আসা প্রশ্ন।
- ফাইল সিস্টেম ফিল্টার ড্রাইভার আর মিনিফিল্টারের ফারাক কী?
- দুটোই «ফাইল সিস্টেমে I/O অনুরোধে ঢোকা ড্রাইভার», কিন্তু ঢোকার প্রজন্ম আলাদা। পুরনো লেগাসি ফিল্টার ফাইল সিস্টেমের ডিভাইস স্ট্যাকে নিজের ডিভাইস অবজেক্ট সরাসরি স্তূপ করে, লোড ক্রমে অবস্থান স্থির হয় বলে ক্রম নিশ্চিত করা কঠিন, একবার লোড করলে নিরাপদে আনলোড করা যায় না ইত্যাদি সমস্যা ছিল। এখনকার মান মিনিফিল্টার Windows-এর সঙ্গে আসা ফিল্টার ম্যানেজার (FltMgr)-এ «এই অপারেশনের আগে-পরে ডাকুন» বলে কলব্যাক নিবন্ধন করে। অবস্থান অ্যালটিটিউড নামের সংখ্যায় নির্ণায়ক স্থির, যেকোনো সময়ে লোড যায়, আনলোড কলব্যাক বাস্তবায়ন করা ফিল্টার চালু অবস্থায়ও খুলে ফেলা যায়। ভাইরাস প্রতিরোধ·এনক্রিপশন·নজরদারি টুল·ক্লাউড সিঙ্ক ইত্যাদি আধুনিক ফিল্টার প্রায় সব মিনিফিল্টার হিসেবে বাস্তবায়িত।
- ভাইরাস প্রতিরোধ সফটওয়্যার সব ফাইল অ্যাক্সেস কেন পরীক্ষা করতে পারে?
- OS সরকারিভাবে সেই জন্য সম্প্রসারণ বিন্দু রেখেছে। মিনিফিল্টার ফাইল খোলা·পড়া·লেখা ইত্যাদি অপারেশনের আগে (pre কলব্যাক) ও পরে (post কলব্যাক) ডাকা কোড ফিল্টার ম্যানেজারে নিবন্ধন করতে পারে। ভাইরাস প্রতিরোধ ফিল্টার অ্যান্টিভাইরাস অ্যালটিটিউড ব্যান্ডে (320000〜329999) থাকে, যেমন ফাইল ওপেন সফল হওয়ার ঠিক পরে (post-create) ভিতর স্ক্যান করে, সমস্যা থাকলে সেই ওপেন বাতিল করে অ্যাক্সেস ব্যর্থ করতে পারে। ধারাবাহিকের ১ম কিস্তিতে দেখা অনুযায়ী সব ফাইল 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 স্থান দিয়েছে।