Memory Manager اور Windows کا سسٹم cache: paging، page combining اور lazy write
На этой странице
مختصر جواب
Заголовок раздела «مختصر جواب»اس سلسلے میں سات paging، ایک جیسے صفحات کے انضمام، kernel heap اور فائل cache کے پیرامیٹرز جانچے گئے۔ Windows 11 25H2 میں ان میں سے ہر ایک کو پڑھنے کا کوڈ ملا۔ عملی فائدہ پیرامیٹر اور کام کے حالات پر منحصر ہے۔
DisablePageCombining پس منظر میں صفحات کے انضمام کو غیر فعال کرتا ہے: memory manager یہ کام کرنا چھوڑ دیتا ہے، لیکن RAM کا استعمال بڑھ سکتا ہے۔ DisablePagingExecutive drivers کے unload ہونے والے کوڈ کو فزیکل میموری میں روکے رکھتا ہے؛ فائدہ عام طور پر بہت کم ہوتا ہے۔ باقی پیرامیٹرز صرف kernel یا اسٹوریج کے مخصوص کاموں پر لاگو ہوتے ہیں یا 25H2 میں پہلے سے موزوں default اقدار رکھتے ہیں۔
کیا جانچا گیا
Заголовок раздела «کیا جانچا گیا»ہر قدر کے لیے جانچا گیا:
- Registry میں درست path اور type؛
- Windows 11 25H2 کے کوڈ کی مقرر کردہ default قدر؛
- اسی subsystem کی متعلقہ اقدار؛
- پڑھنے کا system code اور اس کے عمل میں آنے کا وقت؛
- range کی حدود، اقدار کی تبدیلی اور پیمائش کی اکائیاں؛
- براہ راست اثر اور اطلاق کی حدود۔
پڑھنے کے کوڈ کے علاوہ ہم نے یہ بھی جانچا کہ پیرامیٹر کہاں لاگو ہوتا ہے، اس کی تبدیلی کے کیا نتائج ہوتے ہیں اور کون سے منظرناموں میں یہ مفید ہو سکتا ہے۔ سفارش کے لیے صرف پیرامیٹر کا موجود ہونا کافی نہیں۔
تحقیق کا دائرہ اور شواہد
Заголовок раздела «تحقیق کا دائرہ اور شواہد»- Windows 11 25H2 x64، build
26200.9168۔ - Kernel پیرامیٹرز کا موازنہ
ntoskrnl.exeکے بنیادی configuration table اور Memory Manager اور Cache Manager میں ان کے اطلاق کے کوڈ سے کیا گیا۔ - دورانِ کار رسائی کو system registry tracing سے جانچا گیا۔ phase 0 اور phase 1 کے آغاز میں ہونے والی readings عام boot trace میں موجود نہیں ہو سکتیں: tracing driver بعد میں لکھنا شروع کرتا ہے۔
- صارف کے processes کے لیے
ntdll.dllمیں قدر پڑھنا الگ سے جانچا گیا۔HeapDeCommitFreeBlockThresholdکے لیے 25H2 میں kernel میں reading ملی، لیکن صارف کے processes کے heaps یہ پیرامیٹر استعمال نہیں کرتے۔ - System components کا static analysis کسی فزیکل PC، دوسرے build یا دوسرے قسم کے اسٹوریج پر دہرانے کا متبادل نہیں۔
بنیادی پیرامیٹرز
Заголовок раздела «بنیادی پیرامیٹرز»| Registry path | Value | Type | Default Windows 11 25H2 | اطلاق |
|---|---|---|---|---|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management |
DisablePagingExecutive |
REG_DWORD |
0 |
System drivers کے pageable کوڈ کی paging |
| وہی path | DisablePageCombining |
REG_DWORD |
0 |
ایک جیسے فزیکل صفحات کا پس منظر میں انضمام |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager |
HeapDeCommitFreeBlockThreshold |
REG_DWORD |
0x1000 (4 KB) برائے kernel heap |
kernel-mode heap کے آزاد blocks کے decommit کی حد |
| وہی path | ModifiedWriteMaximum |
REG_DWORD |
1 اکائی = 1 MB |
clamp کے بعد modified page writer کی بالائی حد |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management |
EnableAsyncLazywrite |
REG_DWORD |
2 |
Cache Manager کا asynchronous mode |
| وہی path | CacheUnmapBehindLengthInMB |
REG_DWORD |
8 MB |
sequential reading کے پیچھے unmap کی window |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel |
SplitLargeCaches |
REG_DWORD |
0 |
processor groups کے درمیان cache topology کی نمائش |
DisablePagingExecutive
Заголовок раздела «DisablePagingExecutive»کیا کرتا ہے
Заголовок раздела «کیا کرتا ہے»0 پر Windows کا memory manager system code اور drivers کے اجازت دینے والے sections کو backup storage میں unload کر سکتا ہے۔ 1 پر system drivers کا unload ہونے والا کوڈ فزیکل میموری میں روکے رکھا جاتا ہے۔
پڑھنے کا کوڈ ntoskrnl.exe میں kernel کی initialization کے ابتدائی مرحلے میں ملا۔ قدر MmResetDriverPaging، MmPageEntireDriver اور system images کی loading میں استعمال ہوتی ہے۔ یہ عام صارف کی registry tracing شروع ہونے سے پہلے لاگو ہوتی ہے۔ نئی حالت کے اطلاق کے لیے restart ضروری ہے۔
اقدار اور حدود
Заголовок раздела «اقدار اور حدود»0: Windows کی طے شدہ حالت، paging کی اجازت ہے۔1: system drivers کے unload ہونے والے sections RAM میں روکے رکھے جاتے ہیں۔- یہ setting RAM خرچ کرتی ہے تاکہ system code کی بعد کی loading میموری میں کم کرے؛ خود disk تیز نہیں ہوتی۔
یہ setting ان driver sections کے بعد میں unload اور load ہونے کو روکتی ہے۔ یہ CPU کا کوئی الگ مستقل جانچنے والا thread بند نہیں کرتی۔ جدید system میں کافی RAM کے ساتھ فائدہ عام طور پر بہت کم ہوتا ہے: کوڈ بغیر setting کے بھی دیر تک میموری میں رہ سکتا ہے۔ RAM کی کمی پر اسے زبردستی روکے رکھنا میموری کی کمی کو بڑھاتا ہے۔
پیرامیٹر کی reading اور system effect کی سمت ntoskrnl.exe کے کوڈ سے تصدیق شدہ ہے۔
DisablePageCombining
Заголовок раздела «DisablePageCombining»کیا کرتا ہے
Заголовок раздела «کیا کرتا ہے»0 پر memory manager ایک پس منظر کا کام شروع کرتا ہے جو ایک جیسے فزیکل صفحات ڈھونڈ کر انضمام کرتا ہے۔ 1 پر یہ کام انضمام نہیں کرتا۔
ntoskrnl.exe میں pool tag MmCb کے ساتھ پس منظر میں صفحات کے انضمام کا کوڈ ملا، جو اس mechanism کی موجودگی کی تصدیق کرتا ہے۔
اقدار اور حدود
Заголовок раздела «اقدار اور حدود»0: صفحات کا انضمام اجازت یافتہ، Windows کی طے شدہ حالت۔1: انضمام غیر فعال۔- غیر فعال کرنا memory manager کے پس منظر کے کام کو کم کرتا ہے، لیکن RAM کا استعمال بڑھ سکتا ہے۔
غیر فعال کرنا اس وقت مفید ہے جب صفحات کا انضمام نمایاں پس منظر بوجھ پیدا کرے اور system کے پاس آزاد RAM ہو۔ عام طور پر یہ کام کم فعال ہوتا ہے، اس لیے اثر بہت کم ہوتا ہے۔ محدود میموری پر انضمام سے RAM کی بچت بچائے گئے processor وقت سے زیادہ مفید ہے۔
پڑھنے اور پس منظر کے کام کا کوڈ ntoskrnl.exe میں تصدیق شدہ ہے۔ Microsoft صفحات کے انضمام اور processor کام اور RAM کی بچت کے درمیان trade-off بیان کرتا ہے۔
HeapDeCommitFreeBlockThreshold
Заголовок раздела «HeapDeCommitFreeBlockThreshold»کیا کرتا ہے
Заголовок раздела «کیا کرتا ہے»قدر kernel heap کے آزاد block کے لیے مختص میموری کے decommit کی حد مقرر کرتی ہے۔ بڑی حد پر بڑے آزاد blocks کے لیے ایسے operations کم ہوتے ہیں۔
Windows 11 25H2 میں پڑھنے کا کوڈ ntoskrnl.exe میں ہے، اور پیرامیٹر کا اطلاق kernel function RtlCreateHeap سے منسلک ہے۔ ntdll.dll میں عام processes کے heaps کے لیے متعلقہ reading کا کوڈ نہیں ملا۔
اقدار اور حدود
Заголовок раздела «اقدار اور حدود»- kernel heap کے کوڈ میں default قدر:
0x1000(4 KB)۔ 0x40000(256 KB) kernel heap کے لیے قابل قبول حد ہے۔- Microsoft کی تاریخی دستاویزات نے Windows کے پرانے versions کے اسی نام کے user-mode منظرنامے کو بیان کیا تھا، اس لیے اسے خود بخود Windows 11 25H2 پر منتقل نہیں کیا جا سکتا۔
عام applications کے لیے عملی طور پر کوئی فائدہ نہیں: ان کے heaps یہ قدر استعمال نہیں کرتے۔ پیرامیٹر صرف kernel heap میں میموری کے decommit کی تعدد بدل سکتا ہے۔ اسی کے ساتھ کوئی ماپا ہوا مسئلہ نہ ہو تو متوقع اثر بہت کم ہے۔
Kernel mode میں reading کی تصدیق ntoskrnl.exe میں ہوئی۔ 25H2 میں صارف کے processes کے لیے اثر کی تصدیق نہیں ہوئی۔
ModifiedWriteMaximum
Заголовок раздела «ModifiedWriteMaximum»کیا کرتا ہے
Заголовок раздела «کیا کرتا ہے»پیرامیٹر modified page writer کے mechanism کے لیے بالائی حد مقرر کرتا ہے۔ کوڈ میں 256 صفحات کی اکائیاں استعمال ہوتی ہیں، یعنی ایک اکائی 1 MB کے برابر ہے۔
Windows 11 25H2 میں normalization:
0کو1اکائی میں تبدیل کیا جاتا ہے، یعنی 1 MB؛0x40سے بڑی اقدار0x40تک محدود کی جاتی ہیں؛- زیادہ سے زیادہ مؤثر حد 64 MB، یا 16 384 صفحات ہے۔
یہ mechanism مقررہ limit کے تقریباً ایک چوتھائی پر فعال writing شروع کرتا ہے۔ Limit بڑھانے سے writing کے آغاز کا وقت اور جمع شدہ modified pages کا حجم بدلتا ہے۔ اس سے خود disk کی رفتار نہیں بڑھتی۔
بڑی limit پر فعال writing شروع ہونے سے پہلے زیادہ modified pages جمع ہوتے ہیں۔ Writing کم بار شروع ہو سکتی ہے، لیکن ابھی محفوظ نہ ہوئے ڈیٹا کا حجم اور اگلی writing کا سائز بڑھتا ہے۔ اگر writing کے ساتھ کوئی مخصوص مسئلہ نہ ہو تو default قدر رکھیں۔ مؤثر حد 64 MB تک محدود ہے۔
پڑھنے کا کوڈ، پیمائش کی اکائیاں اور range کی حد ntoskrnl.exe میں تصدیق شدہ ہیں۔ BitLocker کے بارے میں Microsoft کی پرانی دستاویزات کا اسی نام کا پیرامیٹر کسی دوسرے subsystem سے متعلق ہے؛ یہ دستاویزات یہاں بطور ماخذ استعمال نہیں ہوتیں۔
EnableAsyncLazywrite اور متعلقہ اقدار
Заголовок раздела «EnableAsyncLazywrite اور متعلقہ اقدار»کیا کرتا ہے
Заголовок раздела «کیا کرتا ہے»EnableAsyncLazywrite Cache Manager کی asynchronous deferred writing کو کنٹرول کرتا ہے۔ 25H2 کے کوڈ میں default قدر 2 مقرر ہے: یہ mode پہلے سے فعال ہے۔
اسی subsystem کی متعلقہ اقدار:
| Value | Default 25H2 | کردار |
|---|---|---|
EnableAsyncLazywrite |
2 |
عمومی async lazy-write mode |
EnableAsyncLazywriteMulti |
2 |
ملحقہ multi-volume mode |
EnablePerVolumeLazyWriter |
2 |
Per-volume lazy writer |
0 asynchronous deferred writing کو غیر فعال کرتا ہے۔ 1 کے لیے ہر volume پر deferred writing کے الگ handler کا mode درکار ہے۔ 2 اس شرط کے بغیر asynchronous mode فعال کرتا ہے۔ Cache Manager volume configurations پر کام کرتے وقت اقدار دوبارہ پڑھتا ہے۔
2 کی واضح writing Windows 11 25H2 کی طے شدہ configuration کو دہراتی ہے اور کچھ اضافی بہتر نہیں کرتی۔ یہ setting بنیادی طور پر diagnostics کے لیے موزوں ہے: قدر 0 default طور پر چلنے والے mechanism کو غیر فعال کرنے دیتی ہے۔
Reading system tracing میں دیکھی گئی اور ntoskrnl.exe میں تصدیق شدہ ہے۔ Default قدر 2 کوڈ اور reverse engineering کے نتائج پر مبنی registry parameters کی آزاد وضاحت سے تصدیق شدہ ہے۔
CacheUnmapBehindLengthInMB
Заголовок раздела «CacheUnmapBehindLengthInMB»کیا کرتا ہے
Заголовок раздела «کیا کرتا ہے»پیرامیٹر میگا بائٹ میں وہ فاصلہ مقرر کرتا ہے جس کے بعد Cache Manager sequential reading کی موجودہ پوزیشن کے پیچھے رہ جانے والے cached views آزاد کرتا ہے۔
پیرامیٹر کو پڑھنے اور لاگو کرنے کا کوڈ ntoskrnl.exe میں ہے اور cache کی mapping اور reading پر بلایا جاتا ہے۔ پیرامیٹر بڑی فائلوں کی sequential reading سے متعلق ہے؛ یہ پورے file cache کو غیر فعال نہیں کرتا۔
اقدار اور clamp
Заголовок раздела «اقدار اور clamp»0یا128سے بڑی قدر کو کوڈ8سے بدل دیتا ہے۔- کام کرنے کی range:
1..128MB۔ - کوڈ کا default:
8MB۔ - Registry value کی اکائیاں بالکل MB ہیں، bytes نہیں۔
پیرامیٹر صرف بڑی فائلوں کی sequential reading کے مخصوص کاموں کے لیے معنی رکھتا ہے۔ بڑی window پر موجودہ پوزیشن کے پیچھے cache کی mapping دیر تک برقرار رہتی ہے، چھوٹی پر جلد آزاد ہو جاتی ہے۔ عام کام کے لیے طے شدہ قدر 8 MB موزوں ہے؛ دستی setting کا فائدہ عام طور پر کم ہوتا ہے۔
پڑھنے، لاگو کرنے اور range کی حد کا کوڈ ntoskrnl.exe میں تصدیق شدہ ہے۔ اس اندرونی پیرامیٹر کے لیے Microsoft کی جدید عوامی دستاویزات نہیں ملیں۔
SplitLargeCaches
Заголовок раздела «SplitLargeCaches»کیا کرتا ہے
Заголовок раздела «کیا کرتا ہے»0 پر cache topology بیان کرنے والا API متعلقہ structure کے لیے ایک واحد entry واپس کرتا ہے جو کئی processor groups پر محیط ہوتی ہے۔ 1 پر entries processor groups کے لحاظ سے الگ ہو جاتی ہیں۔
پڑھنے کا کوڈ ntoskrnl.exe میں ہے۔ پیرامیٹر KeQueryLogicalProcessorRelationship میں relation RelationCache کی processing میں استعمال ہوتا ہے۔
صرف وہ topology description بدلتی ہے جو system API واپس کرتا ہے۔ مختص فزیکل میموری blocks الگ نہیں ہوتے، اور مسلسل block کی کمی کا امکان بذات خود کم نہیں ہوتا۔
اقدار اور حدود
Заголовок раздела «اقدار اور حدود»0: default قدر۔1: topology entries کو processor groups کے لحاظ سے الگ کریں۔- عملی اثر بنیادی طور پر کئی processor groups والے systems پر ممکن ہے، عام طور پر 64 سے زیادہ logical processors پر۔
- عام ایک group والے system پر اثر نہیں ہوتا۔
پیرامیٹر صرف ان programs کے لیے ضروری ہے جو کئی processor groups والی machine پر cache topology طلب کرتے ہیں۔ یہ cache کے کام اور میموری کی allocation کو نہیں بدلتا۔ عام desktop computer کے لیے کوئی فائدہ نہیں۔
پڑھنے اور لاگو کرنے کا کوڈ ntoskrnl.exe میں تصدیق شدہ ہے۔ قدر اور مقصد KiSplitLargeCaches کی عوامی reverse engineering وضاحت سے ملائے گئے۔
مجموعی افادیت
Заголовок раздела «مجموعی افادیت»| پیرامیٹر | عملی جائزہ |
|---|---|
DisablePagingExecutive |
عام طور پر بہت کم فائدہ دیتا ہے، زیادہ کوڈ RAM میں روکے رکھتے ہوئے |
DisablePageCombining |
پس منظر میں صفحات کے انضمام کے تصدیق شدہ بوجھ اور RAM کی بڑی بچت پر مفید |
HeapDeCommitFreeBlockThreshold |
صرف kernel میں اثر کرتا ہے؛ عام applications کے لیے عملی فائدہ نہیں |
ModifiedWriteMaximum |
Modified pages کی writing کے حالات بدلتا ہے؛ کوئی نمایاں مسئلہ نہ ہو تو طے شدہ قدر رکھیں |
EnableAsyncLazywrite |
طے شدہ قدر 2 پہلے ہی mechanism فعال کرتی ہے؛ دوبارہ لکھنا کچھ بہتر نہیں کرتا |
CacheUnmapBehindLengthInMB |
Sequential reading کی setting؛ طے شدہ 8 MB عام کام کے لیے موزوں ہیں |
SplitLargeCaches |
کئی processor groups کے لیے topology description بدلتا ہے؛ عام system پر اثر نہیں ہوتا |
کیا تصدیق شدہ ہے اور کیا نہیں ماپا گیا
Заголовок раздела «کیا تصدیق شدہ ہے اور کیا نہیں ماپا گیا»اوپر دیے گئے paths، types، default اقدار، پیرامیٹرز کو پڑھنے کا کوڈ اور وقت، نیز ranges کی حدود تصدیق شدہ ہیں۔ نتائج Windows 11 25H2 build 26200.9168 سے متعلق ہیں۔ Windows کے کسی دوسرے update، RAM کے حجم، اسٹوریج کی قسم یا CPU topology پر رویہ مختلف ہو سکتا ہے۔
مشاہدات کے dynamic حصے کو کیسے دہرایا جائے — دیکھیں خود کیسے جانچیں۔
حالت کی بحالی
Заголовок раздела «حالت کی بحالی»واپسی کے لیے پیرامیٹرز کی طے شدہ اقدار بحال کریں یا غیر ضروری entries حذف کریں۔ کچھ اقدار Windows کی اگلی boot پر لاگو ہوتی ہیں۔
تحقیق اور اس میں استعمال ہونے والے tools BoosterX کے developer کی ملکیت ہیں، اس لیے developer کا نتائج میں براہ راست مفاد ہے۔ طریقہ کار اور اطلاق کی حدود اس مضمون میں بیان کیے گئے ہیں؛ نتائج کو عوامی ڈیٹا اور نیچے دیے گئے عوامی ماخذوں سے جانچا جا سکتا ہے۔
عوامی ماخذ
Заголовок раздела «عوامی ماخذ»- Memory combining، Microsoft Learn: page combining کا مقصد اور CPU/RAM trade-off، جانچا گیا 2026-09-01۔
- Registry key that controls device driver and system code pagination to disk، Microsoft archive:
DisablePagingExecutiveکی semantics، جانچا گیا 2026-09-01۔ - HeapDeCommitFreeBlockThreshold, KB315407، Microsoft کی تاریخی دستاویزات: پرانا user-mode منظرنامہ اور 256 KB کی حد، جانچا گیا 2026-09-01۔
- Windows system configuration descriptions،
SplitLargeCachesکی عوامی RE وضاحت، جانچا گیا 2026-09-01۔
کوڈ کے بارے میں دعوے Windows 11 25H2 کے system components کے static analysis سے تصدیق شدہ ہیں۔ Decompiled code، offsets، اصل traces اور اندرونی مواد شائع نہیں کیے جاتے۔
عوامی ماخذ جانچے گئے: 2026-09-02۔
تبدیلیوں کی تاریخ
Заголовок раздела «تبدیلیوں کی تاریخ»- 2026-09-20: مفادات کے تصادم کے بارے میں disclaimer اور طریقہ کار میں dynamic مشاہدات کی خود جانچ کے لنک کا اضافہ۔
- 2026-09-02: پہلی اشاعت؛ paths، defaults، clamps اور پیرامیٹرز کو پڑھنے کے کوڈ کی تصدیق، عملی افادیت کی حدود کا اضافہ۔
