DPC وعمال Kernel Executive في Windows 11 25H2
على هذه الصفحة
إجابة مختصرة
Section titled “إجابة مختصرة”غالبًا ما يُنظر إلى مجموعة DpcQueueDepth، وحدود worker، ومعاملات watchdog على أنها مجموعة من تحسينات latency الشاملة. في الواقع، هذه حدود داخلية وآليات حماية في النواة. لا يظهر تأثيرها إلا في حالة وجود قائمة انتظار DPC محددة، أو عدد معين من المعالجات، أو نوع معين من برامج التشغيل، أو خطأ في worker.
ما الذي تم فحصه
Section titled “ما الذي تم فحصه”تم فحص الحدود التي تقرأها النواة لـ DPC، وworker threads، وwatchdog، وكيفية تسوية القيم، وأين تُطبَّق هذه الآليات فعليًا.
نطاق البحث
Section titled “نطاق البحث”Windows 11 25H2 build 26200.9168، الفرعان Session Manager\Kernel وSession Manager\Executive. لم تشمل القياسات الوظائف المعتمدة على العتاد ولا برامج التشغيل المحددة.
المنهجية
Section titled “المنهجية”تحليل ساكن لـ ntoskrnl.exe: البحث عن readers والمستهلكين، والتحقق من النطاقات وتسوية القيم؛ ومطابقتها مع وثائق Microsoft العامة.
المسار القياسي والقيم
Section titled “المسار القياسي والقيم”مسار DPC وwatchdog:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Kernel
| Value | Type | Default/normalization | ما الذي يتحكم به |
|---|---|---|---|
DpcQueueDepth |
REG_DWORD |
4 |
عمق قائمة انتظار DPC |
MinimumDpcRate |
REG_DWORD |
3 |
الحد الأدنى لمعدل معالجة DPC |
IdealDpcRate |
REG_DWORD |
20 |
معدل DPC المستهدف |
AdjustDpcThreshold |
REG_DWORD |
20 |
عتبة تكيّف سياسة DPC |
ThreadDpcEnable |
REG_DWORD |
1 |
معالجة thread-DPC |
DpcWatchdogPeriod |
REG_DWORD |
120000 |
فترة DPC watchdog |
DpcCumulativeSoftTimeout |
REG_DWORD |
120000 في البنية المفحوصة |
الميزانية الناعمة المتراكمة |
PassiveWatchdogTimeout |
REG_DWORD |
300 ثوانٍ |
watchdog على مستوى passive عند KD |
ForceIdleGracePeriod |
REG_DWORD |
5 ثوانٍ |
فترة السماح force-idle |
PerfIsoEnabled |
REG_DWORD |
0 |
عزل الأداء |
CacheIsoBitmap |
REG_DWORD |
0 |
قناع Intel CAT L3 |
SchedulerAssistThreadFlagOverride |
REG_DWORD |
0 |
تجاوز مساعد المجدول |
VpThreadSystemWorkPriority |
REG_DWORD |
30، النطاق 1..31 |
أولوية عمل المعالج الافتراضي |
AlwaysTrackIoBoosting |
REG_DWORD |
0 |
تتبع تعزيز الإدخال/الإخراج التشخيصي |
مسار Kernel Executive workers:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Executive
| Value | Type | Default/normalization | ما الذي يتحكم به |
|---|---|---|---|
AdditionalCriticalWorkerThreads |
REG_DWORD |
0، clamp 0..100 |
عمال critical إضافيون |
AdditionalDelayedWorkerThreads |
REG_DWORD |
0، clamp 0..100 |
عمال delayed |
MaximumKernelWorkerThreads |
REG_DWORD |
4096، 32..16384 |
الحد الأعلى لعمال kernel |
ForceEnableMutantAutoboost |
REG_DWORD |
0 |
تعزيز تلقائي لـ mutant |
WorkerThreadTimeoutInSeconds |
REG_DWORD |
600، 60..3600 |
مهلة worker |
Session Manager\Kernel وSession Manager\Executive فرعان مختلفان من الإعدادات. لكل قيمة، المسار الذي يفتحه reader النواة في هذه البنية هو المهم.
قائمة انتظار DPC والمعدلات
Section titled “قائمة انتظار DPC والمعدلات”تستخدم النواة DpcQueueDepth، وMinimumDpcRate، وIdealDpcRate، وAdjustDpcThreshold للتحكم في قائمة الانتظار وتكيّف معالجة DPC. القيم الافتراضية المفحوصة 4/3/20/20 تتوافق بالفعل مع الحالة القياسية لـ Windows 11 25H2؛ وإعادة كتابة هذه الأرقام لا تغيّر شيئًا.
الفائدة: قد تكون هذه المعاملات مفيدة عند تحليل تراكم DPC محدد، لكن دون تتبع ETW/WPR، فإن التغيير الأعمى لا يشخّص السبب. قد تؤخر قائمة الانتظار الكبيرة المعالجة وتزيد ذيل التأخير.
Thread DPC وحدود worker
Section titled “Thread DPC وحدود worker”ThreadDpcEnable=1 يفعّل بنية threaded-DPC، و0 يعيد العمل إلى مسار DIRQL العادي وقد يطيل نوافذ إيقاف المقاطعات. MaximumKernelWorkerThreads يحدّ من التجمع العام لعمال kernel. يُضاف AdditionalCriticalWorkerThreads وAdditionalDelayedWorkerThreads إلى التجمعات الأساسية: على Windows للعملاء، هذا يعني 5 من عمال critical و7 من عمال delayed قبل تطبيق التجاوز.
المزيد من الخيوط لا يعني تأخيرًا أقل: يستهلك العمال الإضافيون stack، ووقت المجدول، وموارد cache، وقد تكون قائمة الانتظار محدودة بمكوّن آخر. AdditionalDelayedWorkerThreads=32 يضيف بالفعل عمال delayed، لكن لا يوجد مكسب عام مقيس.
Watchdog والمهلة
Section titled “Watchdog والمهلة”DpcCumulativeSoftTimeout يحدّ من الوقت المتراكم لـ DPC. DpcWatchdogPeriod=0 مقبول ويعطّل هذا watchdog؛ وأي قيمة غير صفرية أقل من 2000 تصبح 2000 ms. يُستخدم PassiveWatchdogTimeout فقط عند تفعيل kernel debugger، لذلك على نظام عادي لا يكون هذا timer نشطًا حتى مع 300 ثوانٍ القياسية. WorkerThreadTimeoutInSeconds يحدّ من تعليق عملية worker.
DpcCumulativeSoftTimeout له حد أدنى 2000 ms ولا يمكن أن يتجاوز DpcWatchdogPeriod. للحصول على القيمة 240000، يجب أن تكون فترة watchdog أيضًا 240000. يتم تسوية WorkerThreadTimeoutInSeconds إلى النطاق 60..3600 ثوانٍ؛ وكتابة 0 لا تعطّل المهلة، بل تؤدي إلى القيمة الدنيا.
تعطيل مهلة الحماية يزيل التشخيص، لكنه لا يصلح سبب التعليق. بالنسبة لنظام production، يُعدّ watchdog جزءًا من آلية اكتشاف برامج التشغيل المعطوبة.
سياسة Kernel Executive
Section titled “سياسة Kernel Executive”ForceEnableMutantAutoboost موجود في الفرع Executive، بينما يُقرأ ForceIdleGracePeriod، وPerfIsoEnabled، وCacheIsoBitmap، وSchedulerAssistThreadFlagOverride، وVpThreadSystemWorkPriority، وAlwaysTrackIoBoosting من الفرع Kernel. هذا الفرق حاسم: الإدخال الذي يحمل الاسم نفسه في المفتاح المجاور لا يُطبَّق.
يُستخدم CacheIsoBitmap فقط عند دعم Intel Resource Director/CAT؛ بدون CAT، لا تُنشئ القيمة أي عزل. SchedulerAssistThreadFlagOverride=0 و1 يتركان التفعيل التلقائي، و2 يعطّل الفرع قسريًا. VpThreadSystemWorkPriority يسمح بـ 1..31، وإلا يُعاد ضبطه إلى 1؛ القيمة الافتراضية 30، و31 هو مجرد الحد الأعلى. AlwaysTrackIoBoosting=1 يفعّل allocation وstack-capture التشخيصيين على مسارات boost، ولا يُبقي أولوية الإدخال/الإخراج مرتفعة.
الفائدة: دون تأثير consumer مؤكد، يكون التأثير عادةً غائبًا أو أصغر من أن يبرر قرارًا عمليًا. هذه القيم مفيدة كموضوع تشخيص kernel منفصل، وليس كمجموعة تحسين عامة.
النتائج
Section titled “النتائج”القيم الافتراضية المفحوصة 4/3/20/20 تتوافق مع الحالة القياسية لـ Windows 11 25H2. العمال الإضافيون افتراضيًا يساوون صفرًا، والحد الأعلى لعمال kernel هو 4096 بنطاق 32..16384. تُسوَّى معاملات watchdog: قيمة أقل من 2000 ms تصبح 2000، وDpcCumulativeSoftTimeout لا يتجاوز فترة watchdog. الفرعان Kernel وExecutive غير قابلين للتبادل.
ما تم تأكيده
Section titled “ما تم تأكيده”- Readers ومستهلكو المعاملات في
ntoskrnl.exeالبنية المفحوصة. - القيم الافتراضية وحدود التسوية، بما في ذلك التبعيات بين معاملات watchdog.
- فصل الفرعين
KernelوExecutive: الإدخال الذي يحمل الاسم نفسه في المفتاح المجاور لا يُطبَّق.
ما لم يتم تأكيده
Section titled “ما لم يتم تأكيده”- تأثير تغيير المعاملات على FPS أو التأخير أو الاستجابة.
- فائدة تغيير الحدود دون مشكلة مؤكدة في قائمة انتظار DPC أو worker.
الخلاصة العملية
Section titled “الخلاصة العملية”لا تغيّر هذه المعاملات بشكل أعمى: دون تتبع ETW/WPR، لا يمكن تحديد سبب التراكم. بالنسبة لنظام عامل، أبقِ watchdog مفعّلًا، واستخدم المعاملات للتشخيص، لا كمجموعة تحسين.
استعادة الحالة
Section titled “استعادة الحالة”أعِد القيم القياسية أو احذف الإدخالات الاختيارية. تُطبَّق معاملات النواة عند التحميل التالي لـ Windows.
المصادر والقيود
Section titled “المصادر والقيود”تم فحص readers وconsumers في ntoskrnl.exe Windows 11 25H2 build 26200.9168. لا تُنشر offsets أو pseudocode. لم تشمل هذه السلسلة مقاييس المستخدم النهائي.
- DPCs and threads، Microsoft Learn، تم التحقق في 2026-09-01.
- Bug checks 0x133 DPC_WATCHDOG_VIOLATION، Microsoft Learn، تم التحقق في 2026-09-01.
لمعرفة كيفية تكرار الجزء الديناميكي من الملاحظات — راجع كيف تتحقق بنفسك.
يعود البحث والأدوات المستخدمة إلى مطوّر BoosterX، لذلك لدى المطوّر مصلحة مباشرة في النتائج. المنهجية وحدود التطبيق موصوفة أعلاه، ويمكن التحقق من الاستنتاجات عبر البيانات المفتوحة والمصادر العامة المذكورة.
تم التحقق من المصادر العامة: 2026-09-02.
سجل التغييرات
Section titled “سجل التغييرات”- 2026-09-20: نُقل قسم «النتائج» إلى الموضع الإلزامي قبل «استعادة الحالة»؛ وأُضيف إخلاء مسؤولية بشأن تضارب المصالح ورابط للتحقق الذاتي من الملاحظات الديناميكية في المنهجية.
- 2026-09-02: النشر الأول؛ تم تأكيد readers وdefaults وclamps، وأُضيفت حدود الفائدة العملية.
