استخدام Driver Verifier لتحديد برنامج التشغيل المشكل. كيفية إصلاح DRIVER_VERIFIER_DETECTED_VIOLATION أخطاء الشاشة الزرقاء (0x000000C4) كيفية العثور على برنامج تشغيل تالف على جهاز كمبيوتر

لأجهزة الأندرويد 31.10.2021
لأجهزة الأندرويد

نحذرك من خطورة أي تجارب مع السائقين ويمكن أن تلحق الضرر بالنظام. من الأفضل عمل نسخة احتياطية للنظام مسبقًا ثم عدم تجاوز أصابعك عن طريق إزالة برنامج تشغيل آخر مشبوه من Windows.

وبمجرد أن لا تأنيب شبابيكمن مايكروسوفت، واصفا الشيء المسكين بالبطء والعربة وحتى غير المستقرة. الآن فقط ، لا أحد في عجلة من أمره لرفضه ، وبشكل عام من غير المحتمل أن يرفضه أبدًا. لذلك ، بدلاً من توبيخ المطورين الفقراء ونشر شعلة لا معنى لها ، سيكون من الجيد معرفة: لماذا ، في الواقع ، نظام عربات التي تجرها الدواب؟ سأخبرك بسر صغير. في شاشات الموت سيئة السمعة والعمل غير المستقر شبابيكفي الغالبية العظمى من الحالات ، يقع اللوم على السائقين الخارجيين ، ونظام التشغيل نفسه لا علاقة له به على الإطلاق. سنخبرك الآن بكيفية اكتشاف برامج التشغيل هذه وإزالتها من النظام.

يمكن أن تكون عيوب تصميم السائق ذات طبيعة مختلفة تمامًا: من الوقوع في شاشة الموت الزرقاء ( الموت الزرقاء- Blue Screen of Death) و ذلك لبطء الحاسب و السلوك الغريب لبعض تطبيقات التطبيقات التي لا تتعلق على الإطلاق بالسائق.

شاشة الموت الزرقاء رائعة (بدون أي سخرية!) من حيث أنها تشير بوضوح إلى وجود مشكلة خطيرة وتعطي تلميحًا عن مكان الحفر. في كثير من الأحيان (ولكن ليس دائمًا) يتم عرض اسم السائق "المذنب" مباشرة في الزاوية اليمنى العليا من شاشة الموت الزرقاء. ومع ذلك ، قد لا يكون هناك ، أو الأسوأ من ذلك ، قد يكون هناك اسم لسائق أجنبي تمامًا.

لذلك ، على سبيل المثال ، أحد برامج تشغيل بطاقة الفيديو الشائعة إلى حد ما ماتروكس G450يميل إلى تدمير الهياكل الأساسية للنظام الفرعي للرسومات شبابيك 2000 ، مما أدى إلى ظهور شاشة الموت الزرقاء التي تظهر اسم برنامج تشغيل النظام win32k.sys، والتي تنفذ جزءًا كبيرًا من وظائف USER و GDI والتي ، بالطبع ، لا علاقة لها بها. لذا فإن تفسير شهادة شاشة الموت الزرقاء هو السحر والحدس والعلم والفن - القليل من كل شيء.

بالإضافة إلى عيوب برنامج التشغيل ، يمكن أيضًا أن تحدث شاشات الموت الزرقاء بسبب فشل الأجهزة ، مثل معالج فيركلوكيد ، وذاكرة الوصول العشوائي المعيبة ، ووحدة تحكم القرص الصلب الملتوية ، وبطاقة PCI لم يتم إدخالها بالكامل في الفتحة ، وهو اتصال سيء في أحد موصلات ، مصدر طاقة سيئ ، مكثف كهربائيا منتفخ على اللوحة الأم. والعبوس الأخير لأسباب مختلفة: بسبب ارتفاع درجة الحرارة من معالج قريب ، ونقص المكثفات الخزفية "التي لا يتم الإبلاغ عنها بشكل كافٍ" من قبل الشركة المصنعة (نتيجة لذلك ، يمر مكون HF عبر الإلكتروليت ويسخنه) ، أخيرًا ، بسبب تسرب الترانزستورات الرئيسية في مثبت العقدة. لذلك ، قبل تقطيع الخشب ، من الضروري التأكد من أن المكواة التي نجلس عليها تعمل بكامل طاقتها. وكيف يتم ذلك؟

المواجهة بالحديد

شاشات الموت الزرقاء الناتجة عن أعطال الأجهزة تكون تلقائية وتظهر بشكل غير متوقع وبغض النظر عن أي إجراءات محددة للمستخدم. تبدأ تطبيقات التطبيقات أيضًا في إصدار أخطاء فادحة في أماكن مختلفة ، وستكون رموز الأخطاء والعناوين والمعلومات الأخرى الصادرة عن النظام مختلفة في جميع الحالات! بالمناسبة ، تعمل برامج التشغيل التي تعالج الطلبات غير المتزامنة من أجهزة الإدخال / الإخراج ، مثل الشبكات اللاسلكية ، بنفس الطريقة تقريبًا. تميل شاشات الموت الزرقاء الناتجة عن السائقين المعيبين إلى الحدوث عند تنفيذ مجموعة معينة من الإجراءات وتحتوي على معلومات دائمة أو أكثر.

لإزالة كل الشكوك حول الأجهزة ، يكفي توصيل محرك أقراص ثابت آخر بالنظام ، وتثبيت قرص نظيف أصلي عليه. شبابيكوالعمل عليها لفترة من الوقت. إذا لم تختف شاشات الموت الزرقاء ، فإن اللوم يقع على عاتق الأجهزة وحان الوقت لتغييرها. البحث عن المكونات المعيبة هو موضوع نقاش منفصل ، والذي سنتركه في المرة القادمة ، ولكن في الوقت الحالي ، بعد أن نشمر عن سواعدنا ، سوف نتعامل مع هؤلاء السائقين الخادعين.

الحطب بدون شهادة مباشرة في الفرن

مجموعة الأدوات الكاملة المطلوبة لتطوير السائق ( DDK- Driver Development Kit) ، توزع Microsoft مجانًا مع الوثائق المصاحبة لها. السائقين ، في بعض الأحيان عربات التي تجرها الدواب وغير مستقرة.

لمنع حدوث مثل هذه الفوضى ، مايكروسوفتفي العصور القديمة ، قدمت إجراءً لاعتماد السائقين للامتثال لمتطلباتهم ، وبعد ذلك يتم إصدار توقيع رقمي للسائق. أو ... لم يصدر ، وذهب للمراجعة. وعلى الرغم من أن الاعتماد هو مجرد إجراء رسمي لا يضمن عدم وجود أخطاء فادحة وعيوب في التطوير ، إلا أنه لا يزال يقضي على بعض السائقين "الرواد" بصراحة.

من الناحية المثالية ، يجب الاحتفاظ فقط ببرامج التشغيل الموقعة رقمياً في النظام. وعلى الرغم من أن التوقيع الرقمي ليس بوليصة تأمين ، إلا أن وجوده يشير بالفعل إلى مستوى معين من ثقافة التنمية. تعد برامج التشغيل غير الموقعة أسوأ من قطة في الوخز ويجب التخلص منها كلما أمكن ذلك (خاصة وأن العديد منها عبارة عن برامج ضارة مثبتة بواسطة أدوات rootkits أو آليات دفاع عدوانية تخترق النظام وتتسبب في عدم استقراره). باختصار ، لن يولد الغوغائية ، لكن دعونا نحاول الإجابة على سؤال واحد بسيط: كيف نصنع قائمة من السائقين بدون توقيع رقمي؟

سوف تساعدنا الأداة في هذا. sigverif.exe، المدرجة في مجموعة تسليم نظام التشغيل القياسي والموجودة في دليل WINNT \ System32. قم بتشغيله وانظر مربع الحوار. نضغط على الزر "خيارات متقدمة" وفي علامة التبويب "بحث" ، قمنا بإعداد معايير الاختيار عن طريق تحريك زر الاختيار من الموضع "الإخطار بملفات النظام غير الموقعة" (حيث يتم وضعه افتراضيًا) إلى الموضع "البحث عن ملفات أخرى غير موقعة بتوقيع رقمي ". بعد ذلك ، في مربع "خيارات البحث" ، افتح مربع "البحث عن الملفات من النوع التالي" وحدد "* .sys" ، أدناه نحدد المجلد للبحث عن "C: \ WINNT" ، تأكد من تحديد مربع "تضمين المجلدات الفرعية".

في الواقع ، بالمعنى الدقيق للكلمة ، لا يُطلب من السائقين أن يكون لديهم امتداد sys ولا يقتصر الأمر دائمًا على دليل WINNT ، كونهم في أدلة تطبيقاتهم ، بل إن بعض التطبيقات تخزن برامج التشغيل ... داخل نفسها! مباشرة بعد التشغيل (أو في أي وقت آخر) ، يقومون بحفظ الملف على القرص في الدليل الحالي أو المؤقت ، ويقومون بتحميل برنامج التشغيل في الذاكرة و ... يحذفونه على الفور من القرص! ليس فقط الفيروسات الخبيثة تفعل ذلك ، ولكن أيضًا البرامج المحترمة تمامًا ، مثل بعض الأدوات المساعدة لـ Mark Russinovich ، وهو باحث معروف في Windows.

لذلك ، من أجل نقاء التجربة ، لا يضرنا على الإطلاق للحصول على قائمة بالمشغلات الموجودة حاليًا في الذاكرة ومقارنتها مع برامج التشغيل الموجودة على القرص. تعتبر الكلمات "في الوقت الحالي" مفتاحًا ، نظرًا لأن تحميل / تفريغ برامج التشغيل يمكن أن يحدث مجانًا دون إعادة تشغيل نظام التشغيل. يُنصح بإجراء هذه العملية عدة مرات عن طريق تشغيل الأداة المساعدة لسطر الأوامر driver.exe ، والتي تعد جزءًا من DDK ، والتي يمكن تنزيلها من خادم Microsoft. تم إطلاق الأداة المساعدة بدون أي رموز تبديل سطر أوامر drive.exeتفريغ جميع المعلومات الموجودة على الشاشة ، وهذا ليس جيدًا ، حيث يوجد عادةً الكثير من برامج التشغيل في النظام ولا تتناسب مع الشاشة. ومع ذلك ، يسمح لنا الدين بإعادة توجيه دفق الإخراج إلى ملف نصي (driver.exe> ​​file-name.txt) ، يفتح بواسطة أي محرر نصوص - حتى Word ، وحتى المفكرة. ثم يبقى فقط لتحديد كتلة عمودية (التي لا تسمح بها المفكرة) والحصول على قائمة السائقين. مباشرة من نواة نظام التشغيل!

إذا كان أحد برامج التشغيل هذه مفقودًا في الدليل C: \ WINNT \ ، فلن يتم التحقق من توقيعه الرقمي! بطبيعة الحال ، يجذب مثل هذا السائق الانتباه على الفور ، ولدينا سؤال معقول: من أين أتى؟ أولاً ، نقوم بفحص جميع الدلائل الموجودة على القرص ؛ إذا لم يكن موجودًا ، فقم بتعيين نقطة توقف على وظيفة Soft-Ice's CreateFileW وانظر إلى الوسائط التي تم تمريرها إليها. عاجلاً أم آجلاً ، سنلتقي بسائق عربات التي تجرها الدواب ، وبعد ذلك كل ما تبقى هو النظر إلى الزاوية اليمنى السفلية لشاشة Soft-Ice ، حيث يتم عرض اسم العملية التي تم إنشاؤها. لمزيد من التفاصيل ، راجع كتاب "تقنيات برامج التصحيح بدون رموز المصدر" ، والذي يمكن العثور على نسخة إلكترونية منه على ftp- أو http-server nezumi.org.ru ، وكذلك على القرص الخاص بنا. ونستمر في تعذيب المنفعة sigverif.exe.

بعد النقر فوق "موافق" ، "ابدأ" ، سيظهر "مقياس حرارة" على الشاشة ، يوضح التقدم ، وسيبدأ محرك الأقراص الثابتة في الاختناق بكل ما لديه من رؤوس. عند الانتهاء من العمل ، سيتم تجميع قائمة السائقين بدون توقيع رقمي وعرضها على الشاشة.

يقترح بعض المتهورون ، من أجل تطهير نظام البدعة ، إزالة جميع السائقين غير الموقعة - ثم ، كما يقولون ، ستتم إزالة جميع المشاكل مثل الذيل. وكيف يتم ذلك؟ الحل الأكثر وقاحة هو ببساطة أخذها وحذفها من القرص عبر FAR أو Explorer (بالطبع ، مع حقوق المسؤول!). لكن عواقب مثل هذه العملية يمكن أن تكون مؤسفة للغاية ، ومن الأفضل ، بالنقر بزر الماوس الأيمن على أيقونة برنامج التشغيل في Explorer ، للعثور على اسم الشركة المصنعة في "الخصائص" ، والتي يمكنك من خلالها تحديد قام التطبيق / قطعة من الأجهزة بتثبيت برنامج التشغيل هذا ، وإلغاء تثبيته بطريقة حضارية. صحيح ، هناك واحد "لكن".

الشكل التالي يوضح السائق g400m.sys، والتي تأتي مع بطاقة Matrox G450 ، وعلى الرغم من أن Matrox ليست شركة ضعيفة على الإطلاق ، إلا أنها لم تحصل على توقيع رقمي (إما أن Microsoft لم تعطها ، أو أن Matrox نفسها لم ترغب في الإزعاج). بطبيعة الحال ، بعد إزالته من النظام ، سوف تضطر إلى نسيان وضع SVGA. ومع ذلك ، يمكنك الانتقال إلى موقع Matrox الإلكتروني عن طريق تنزيل أحدث إصدار من برنامج التشغيل (تم توقيعه رقميًا بالفعل). الآن فقط ... تحتوي كلتا النسختين الموقعة وغير الموقعة على العديد من الأخطاء الفادحة ، على وجه الخصوص ، نتيجة لمجموعة من الظروف المعينة عند محاولة التبديل إلى وضع التراكب ، يتعطل النظام في شاشة الموت الزرقاء ، حيث يحاول السائق تحرير تحرير الذاكرة بالفعل.

وبالتالي ، فإن وجود / عدم وجود توقيع رقمي في حد ذاته لا يعني شيئًا ، وحتى إذا استخدمنا برامج تشغيل موقعة فقط ، فإن هذا لا يمنحنا أي ضمانات للاستقرار.

هذا هو المكان الذي ننتقل فيه إلى الجزء الثاني من المقالة ، وهو اختبار السائقين في ظروف قريبة من القتال.

نرتب اختبارًا حقيقيًا للحطب

يتضمن DDK أداة مساعدة رائعة سائق المدقق، مما يخلق أقسى الظروف للسائقين ، على الحدود القصوى والانتحارية ، حيث يكون احتمال الفشل هو الحد الأقصى ، ويتم تحديد اسم السائق المعيب بأعلى دقة (حتى لو لم يعاني بسبب عيوب التطوير ، لكنه يدمر بنية البيانات للسائقين الآخرين).

من المهم أن نلاحظ ذلك سائق المدققإنه ليس علاجًا ، ولكنه مجرد أداة تشخيصية. لا يزال هذا لا يحميك من الإخفاقات (على العكس من ذلك ، سيزيد من شدتها بعدة أوامر من حيث الحجم) ، ولكنه سيساعد على تحديد السائق "اللئيم" بدرجة كافية من اليقين.

لذا ، قم بتشغيل verifier.exe ، انظر النافذة سائق المدقق إدارة، انتقل إلى علامة تبويب الإعداد وانقل زر الاختيار إلى موضع التحقق من جميع برامج التشغيل ، وبعد ذلك نضغط على زر "الإعداد المفضل" ، والذي يحدد أنواع الشيكات التالية (نوع التحقق):

  • خاص حمام سباحة- سيتم تخصيص مساحة ذاكرة خاصة للسائقين الذين تم فحصهم ، وهي ليست سريعة جدًا ، ولكنها قادرة على اكتشاف معظم أنواع تدمير بياناتها وبيانات الأشخاص الآخرين.
  • فرض IRQLتدقيق. يرمز IRQL إلى مستوى طلب المقاطعة. الخطأ الأكثر شيوعًا الذي يرتكبه مطورو برامج التشغيل هو محاولة الوصول إلى الذاكرة في IRQL التي لا يعمل عليها مدير المبادلة. وإذا تبين فجأة أن الصفحة المطلوبة قد تم إجبارها على الخروج إلى القرص ، فسيتحول النظام إلى شاشة زرقاء عليها نقش "IRQL_LESS_OR_EQULAR". يؤدي فرض هذا الوضع إلى إجبار صفحات برنامج التشغيل على القرص ، بحيث يظهر عيب التطوير نفسه في 100٪ من الحالات.
  • قليل الموارد محاكاةمن المفيد التثبيت لمعرفة كيف سيتصرف السائق في حالة النقص الكارثي في ​​موارد النظام ، ولكن لا يمكن القيام بذلك ، ولكن من الأفضل ترك مربع اختيار تتبع التجمع (تتبع صحة معالجة تجمع الذاكرة ). تشكل أخطاء الإدخال / الإخراج (التحقق من الإدخال / الإخراج) جزءًا غير مهم من جميع الأخطاء ، وبالتالي فإن موضع مربع الاختيار هذا ، بشكل عام ، غير مهم تمامًا.

بعد الانتهاء من اختيار الإعدادات ، نضغط على الزر "تطبيق" (تطبيق) ، وكما هو متاح لنا ، نقوم بإعادة التشغيل.

بمجرد بدء التمهيد ، سيتباطأ النظام بشكل ملحوظ ، وهو ما يجب أن يحدث ، لأن النواة تقوم بفحوصات أكثر بكثير من المعتاد. عند العثور على أخطاء ، تومض شاشة الموت الزرقاء باسم السائق وبعض المعلومات الأخرى المفيدة للمطورين ، ولكنها غير مجدية بالنسبة لنا. كل ما يمكننا فعله هو تحديث برنامج التشغيل إلى أحدث إصدار أو التوقف عن استخدام البرنامج (الجهاز) الذي يستخدمه. في الواقع ، لدينا المزيد من الخيارات لإضاءة الحطب الخام ، ولكن المزيد عن ذلك لاحقًا.

يمكنك معرفة حالة التحقق في أي وقت عن طريق تشغيل verifier.exe. تسرد علامة التبويب Driver Status (حالة برنامج التشغيل) حالة جميع برامج التشغيل المكتشفة مع شرح للوضع الحالي. تعني حالة التحميل أنه تم تحميل برنامج التشغيل هذا واختباره مرة واحدة على الأقل (ولكن ربما ليس بالكامل ، أي أنه لم يتم العمل على جميع أقسام برنامج التشغيل). تعني حالة Unloaded أنه تم تحميل برنامج التشغيل وفحصه (ربما جزئيًا) وإلغاء تحميله بواسطة النظام / البرنامج الذي يستخدمه أو بإرادته الخاصة. هذا الأخير ينطبق بشكل خاص على السائقين المتروكين من المعدات التي تمت إزالتها عن طريق سحب بطاقات التوسيع بوحشية من الفتحة ، أي دون إجراء إلغاء التثبيت. يقوم السائق الناجي بمسح الحافلة ، محاولًا العثور على معداتها ، وينقطع بالبحث ، ثم يفرغ نفسه من الذاكرة ، بالمناسبة ، مما يؤدي إلى إبطاء تمهيد النظام (أحيانًا بشكل كبير جدًا) ويتعارض مع السائقين الآخرين. معنوي: يجب إزالة المعدات من النظام وفق كل القواعد! ومع ذلك ، ليست كل حالة غير محملة علامة على موقف غير طبيعي ، وقبل حذف سائق بهذه الحالة ، تحتاج إلى معرفة نوع حيوان الرنة ومن أين أتى.

تشير حالة "لم يتم التحميل" إلى أن برنامج التشغيل هذا لم يتم تحميله بعد ، مما يعني أنه لم يتم التحقق منه ، لذلك ، يجب عليك الانتظار حتى يتم تشغيل برامج مختلفة قد تكون مرتبطة به. ومع ذلك ، لا يتم تحميل بعض برامج التشغيل (خاصة تلك التي تم إلغاء تثبيتها بشكل غير صحيح) ، وبالتالي لا يتم فحصها أبدًا.

بعد العمل مع النظام في وضع الاختبار الصعب لبعض الوقت (من عدة ساعات إلى عدة أيام) ، سنحدد تقريبًا جميع برامج التشغيل المعيبة التي عانينا منها سابقًا ، ونكتب أسمائهم على قطعة من الورق.

يمكنك إعادة النظام إلى الوضع العادي (أي بدون عمليات فحص إضافية تستهلك الأداء) باستخدام نفس المدقق. نعود إلى علامة التبويب "الإعداد" ، وننقل زر الاختيار إلى موضع التحقق من برامج التشغيل المحددة (في هذه الحالة ، يجب عدم تحديد أي برنامج تشغيل) ، انقر فوق "إعادة تعيين الكل" ، ثم على "تطبيق" وإعادة التشغيل. الجميع! يعمل النظام الآن بالسرعة العادية ، لكن لا توجد فحوصات.

ماذا تفعل بالحطب الخام؟

لكن في الحقيقة ، ما الذي يمكن فعله مع السائق المعيب؟ يمكن للقراصنة الذين يعرفون كيفية حمل مصحح الأخطاء في أيديهم ، مع وجود وقت فراغ كافٍ ، تفكيكه (شكرًا ، عادةً ما تكون برامج التشغيل صغيرة الحجم) ، والعثور على خطأ ، والتوصل إلى طريقة لإصلاحه ، ولكن ... هذا شاق جدا.

كما أن التخلص من برنامج التشغيل (جنبًا إلى جنب مع الجهاز / البرنامج الذي يستخدمه) ليس خيارًا أيضًا. على الرغم من أنه إذا كان من المعروف أن بطاقة الصوت من مصنع صيني غير مألوف بقيمة 20 دولارًا هي المسؤولة عن شاشات الموت الزرقاء ، فإن لدينا دافعًا كبيرًا لاستبدالها بشيء أكثر جدارة. لكن هذا في الواقع واضح للجميع ولا يحتاج إلى تعليقات إضافية.

لكن لا يعلم الجميع أن عددًا كبيرًا من الحوادث وشاشات الموت الزرقاء ترجع إلى حقيقة أن برنامج التشغيل تم تطويره (واختباره) في بيئة ذات معالج واحد مثبت على جهاز ثنائي المعالج. نعني بكلمة "معالج مزدوج" هنا كلاً من النظام الأساسي الحقيقي بحجرتين ، والمعالجات Hyper-Threading / متعددة النواة. من المعروف (وأكده عدد كبير من الاختبارات) أن الكمبيوتر المنزلي لا يحتاج إلى معالجين على الإطلاق ، لأنه في الغالبية العظمى من التطبيقات لا توجد زيادة في الأداء عمليًا.

لذلك ، إذا كان النظام غير مستقر ، ولسبب أو لآخر لا يمكن التخلص من برنامج التشغيل المعيب ، يمكنك محاولة الدخول في إعداد BIOS ، وتحويل جهاز "المعالج الثنائي الافتراضي" إلى معالج واحد . يمكن تحقيق تأثير مماثل من خلال فتح ملف boot.ini (على أجهزة الكمبيوتر ذات الامتداد نظام التشغيل Windows NT / 2000 / XPإنه موجود في الدليل الجذر لمحرك الأقراص المنطقي الذي تم تثبيت النظام عليه) وإضافة مفتاح / ONECPU إليه ، ثم إعادة التشغيل على أمل أن تختفي الأخطاء.

قائمة 1

مثال على ملف boot.ini نموذجي


المهلة = 30

متعدد (0) قرص (0) rdisk (0) قسم (1) \ WINNT = "Windows 2000 Pro" / fastdetect / SOS

القائمة 2

نقوم بتكوين النظام لاستخدام معالج واحد فقط من كل ما هو متاح


المهلة = 30
افتراضي = متعدد (0) قرص (0) rdisk (0) قسم (1) \ WINNT
متعدد (0) قرص (0) rdisk (0) قسم (1) \ WINNT = "Windows 2000 Pro" / fastdetect / SOS / ONECPU

لكن على شبابيك مشهد من خلاللا يوجد ملف boot.ini ، وبينما يوجد خيار (مؤقت) لتهيئة إعدادات التمهيد الخاصة به باستخدام أداة مساعدة ، تخطط Microsoft للقضاء على هذه الثغرة تمامًا ، مع ترك إعداد BIOS فقط. ومع ذلك ، فيما يتعلق مشهد من خلالوبعد ذلك ، بحلول الوقت الذي ينتقلون إليه ، سيحصل مطورو برامج التشغيل على الأرجح على آلات متعددة المعالجات (نظرًا لأنه لن يكون هناك أي أجهزة أخرى معروضة للبيع) وسيختبرون إبداعاتهم في بيئة متعددة المعالجات.

نقطة أخرى دقيقة. تذكر ، قلنا أعلاه أن الخطأ الأكثر شيوعًا الذي يرتكبه مطورو برامج التشغيل هو الوصول إلى الذاكرة المُسبقة على مستوى IRQL حيث لا يعمل مدير المبادلة ، وإذا لم تكن الصفحة المطلوبة في الذاكرة ، فهل يحدث عطل؟ يتمثل الحل الواضح هنا في زيادة ذاكرة الوصول العشوائي إلى المقدار الذي لا يحدث فيه إزاحة الصفحات إلى القرص عمليًا. بالأسعار الحالية للذاكرة ، يستطيع كل شخص تقريبًا شراء زوج من "النرد" الجديد. ولكن هناك حل أكثر سهولة (وأكثر أناقة) للمشكلة. إذا كانت المعلمة DisablePagingExecutive، الموجود في فرع التسجيل التالي HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ MemoryManagement، يساوي واحدًا (صفر افتراضيًا) ، لن يتم إزاحة المكونات النووية. لذلك ، نقوم ببساطة بتشغيل "محرر التسجيل" ، وتغيير هذه المعلمة العزيزة وإعادة التشغيل (تصبح التغييرات سارية المفعول فقط بعد إعادة التشغيل) ، على أمل أن يساعد ذلك في حل مشكلة الفشل.

في مثل هذه الحالات ، للتحقق من مدى صحة عمل برامج التشغيل في نظام التشغيل Windows XP ، توجد أداة مساعدة خاصة verifier.exe. خدمة سائق المدقق، يخلق أقسى الظروف للسائقين ، حيث يكون احتمال الفشل مرتفعًا للغاية ، ويتم تحديد اسم السائق الفاشل بأعلى دقة. لذلك ، في حالة الفشل غير المنتظم ، من المفيد تشغيل الأداة المساعدة سائق المدقق.إملف تنفيذى.ليست هناك حاجة لتنزيل Verifier ، لأن الأداة المساعدة مضمنة مع Windows وموجودة في الدليل نظام التشغيل Windows \ system32


1 العمل مع المدقق.إملف تنفيذى

1.1 هيا نركض verifier.exe.ابدأ - تشغيل - المدقق.إملف تنفيذى:

1.3 خدمة سائق المدقق.إملف تنفيذىسيطلب إعادة التشغيل:



1.4 ستظهر معلمتان جديدتان في التسجيل:


- HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ VerifyDriverLevel

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ VerifyDrivers


تتعلق إعدادات التسجيل بـ سائق المدقق.إملف تنفيذى

2 نتائج الاختبار

2.1. إذا كان في النافذة الأولى من الأداة سائق المدقق.إملف تنفيذىيختار "عرض معلومات حول برامج التشغيل المختبرة حاليًا" ،ثم ستظهر نافذة مثل هذه. يظهر أي السائقين يتم فحصهم وأيهم لم يتم فحصه. ملحة "إضافي"، يمكنك الاطلاع على معلومات أخرى حول برامج التشغيل التي تم اختبارها:



2.2. نتيجة فحص السائقين مع الأداة المساعدة سائق المدقق.إملف تنفيذىمن الممكن أن يتعطل النظام. عند حدوث خطأ أثناء فحص برامج التشغيل ، تحدث أخطاء في النظام و. يتم عرض الرموز النموذجية ورموز الخطأ أدناه.

0xC1: SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION
0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION
0xC6: DRIVER_CAUGHT_MODIFYING_FREED_POOL
0xC9: DRIVER_VERIFIER_IOMANAGER_VIOLATION
0xD6: DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION
0xE6: DRIVER_VERIFIER_DMA_VIOLATION


2.3 أمثلة على تفريغ فك التشفير بواسطة البرنامج :


3. روابط مفيدة

تم تصميم الأداة المساعدة Driver Verifier (verifier.exe) لتحليل برامج التشغيل التي بها مشكلات عند تحليل تفريغ الذاكرة بعد فشل الموت الزرقاء في العثور على المشغل المشكل. برنامج Driver Verifier هو المنقذ في أكثر المواقف إشكالية.

باستخدام Driver Verifier ، يمكنك القيام بما يلي:

    اختبار إجهاد السائق (محاكاة ظروف نقص الموارد) ؛

    التحكم في تجاوز المخزن المؤقت ؛

    السيطرة على الأخطاء الناشئة عن التشغيل غير الصحيح في IRQL معين ؛

    تحليل أخطاء المدخلات والمخرجات ؛

    الكشف عن حالات الجمود ، إلخ.

يمكن أن تكون الأداة المساعدة Driver Verifier مفيدة جدًا عندما:

    لدى المسؤول (المستخدم) شكوك في أن هذا السائق هو الذي يتسبب في تعطل النظام ويريد بالإضافة إلى ذلك التحقق مما إذا كان هذا هو الحال بالفعل ؛

    يريد مطورو السائقين اختبار سائقهم ؛

    عند تحليل تفريغ بعد الموت الزرقاء ، من المستحيل العثور على سائق مشكلة.

واحدة من أصعب حالات تحليل تفريغ الذاكرة هي الحالة عندما يقوم السائق عن طريق الخطأ بالكتابة فوق البيانات قبل أو بعد نهاية المخزن المؤقت المخصص له. في مثل هذه الحالات ، تحدث أخطاء في نواة نظام التشغيل (على سبيل المثال ، يوضح تحليل التفريغ بعد الموت الزرقاء أن الخطأ نشأ في ntoskrnl.exe).

لنلق نظرة على حالة مماثلة بمثال محدد. باستخدام الأداة المساعدة NotMyfault ، نتسبب في الموت الزرقاء - "تجاوز المخزن المؤقت".

نتيجة تحليل التفريغ باستخدام windbg موجودة في المرفق أدناه.

وفقًا لتحليل التفريغ ، نحصل عليه.

1. Arg1: 00000007 ، محاولة تحرير تجمع تم تحريره بالفعل (كانت هناك محاولة لتحرير تجمع تم تحريره بالفعل)

2. IMAGE_NAME: ntkrpamp.exe (جوهر النظام نفسه له علاقة بهذا)

مع مثل هذه الأخطاء يأتي المحقق للإنقاذ.

نبدأ المدقق.

حدد "إنشاء إعدادات غير قياسية". بعد ذلك ، حدد "تحديد الخيارات من قائمة".

نختار كل شيء ما عدا "تقليد نقص الموارد".

ثم حدد "تحديد برامج التشغيل غير المحملة لهذه القائمة" وحدد المسار إلى برنامج التشغيل myfault.sys ، الموجود في نفس الدليل مثل برنامج NotMyfault.exe.

ثم ضع علامة على السائق وانقر على "إنهاء". بعد ذلك ، نحتاج إلى إعادة تشغيل الكمبيوتر.

نقوم بنفس الخطوات كما في البداية. قم بتشغيل NotMyfault.exe ، حدد "تجاوز سعة المخزن المؤقت" وانقر فوق "تحطم". كما لاحظت ، قد لا يحدث الانهيار على الفور ، لأن من ومتى سيحاول العمل مع هذه الذاكرة غير معروف مسبقًا. كما ترى في الصورة أدناه ، بفضل المدقق ، يمكن للنظام تحديد المشغل المشكل.

فيما يلي تحليل باستخدام! analysis –v في windbg.exe لتفريغ الذاكرة بعد الموت الزرقاء.

يجعل برنامج المدقق ذلك بحيث يستخدم السائق الذي يتم فحصه مجموعة خاصة بدلاً من الذاكرة العادية المتوفرة في النواة ، المصممة لاكتشاف مثل هذا الخطأ. بفضل هذا ، يمكنك العثور على السائق الذي يسبب الموت الزرقاء.

إذا نظرنا إلى نتائج التحليل ، نرى ما يلي.

1. DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION (d6) - هذا هو أحد الأخطاء التي تم إنشاؤها بواسطة المدقق

2. IMAGE_NAME: myfault.sys - السائق الذي تسبب في المشكلة.

وبالتالي ، إذا كان تحليل تفريغ الذاكرة بعد الموت الزرقاء لا يسمح لك بالعثور على "سائق مذنب" ، فاستخدم برنامج verifier.exe (قم بتثبيت جميع الفحوصات باستثناء نقص الذاكرة).

أسهل طريقة لاستخدام Driver Verifier (verifier.exe) هي تشغيله بالمعلمات التالية:

المدقق / القياسي / اسم ملف برنامج التشغيل

المشاهدات بعد: 1042

خدمة سائق المدققمضمنًا مع جميع إصدارات Windows ، بدءًا من نظام التشغيل Windows XP ، ويسمح لك بإجراء فحص لبرنامج التشغيل وتحديد برامج التشغيل المسببة للمشكلات شاشة الموت الزرقاء (الموت الزرقاء- Blue Screen of Death) وكتابة معلومات تفصيلية حول المشغل المشكل إلى ملف تفريغ الذاكرة لمزيد من التحليل. تعرض الأداة برامج التشغيل المختبرة لمختلف " اختبارات الإجهاد"، محاكاة مختلف الظروف القاسية: نقص الذاكرة ، والتحكم في الإدخال / الإخراج ، و IRQL ، وحالات التوقف التام ، وفحوصات DMA ، و IRP ، إلخ. تتم محاكاة المواقف التي تحدث بشكل غير متكرر على الأنظمة الإنتاجية ، ويتم مراقبة سلوك السائق فيها. الغرض من الأداة المساعدة هو تحديد المواقف التي يمكن أن يؤدي فيها السائق إلى تعطل النظام مع الموت الزرقاء.

يسمى الملف القابل للتنفيذ لأداة Driver Verifier المساعدة المدقق.إملف تنفيذىوهو موجود في الدليل٪ windir٪ \ system32. هناك خياران لاستخدام الأداة المساعدة: من سطر الأوامر أو باستخدام الواجهة الرسومية.

لتمكين وضع التحقق من برنامج التشغيل في Windows 8 ، قم بتشغيل الأداة المساعدة Driver Verifier عن طريق الكتابة

المدقق

من قائمة المهام ، حدد إنشاء إعدادات مخصصة (لمطوري التعليمات البرمجية)و اضغط التالي.

تأكد من تحديد الخيارات الإعدادات القياسية, فرض طلبات الإدخال / الإخراج المعلقةو تسجيل IRP. انقر التالي.

اختر المقبل.

قم بفرز محتويات الجدول بالنقر فوق عنوان عمود الموفر وحدد برامج التشغيل التي تريد اختبارها من قائمة برامج التشغيل. في مثالنا ، سنجري فحصًا لجميع برامج التشغيل التي ليست من مطوري مايكروسوفتمؤسَّسة. اخترنا برامج التشغيل: e1g6032e.sys (Intel) و lsi_sas.sys (LSI).

ملحوظة. تشير حقيقة أن برنامج التشغيل لديه توقيع رقمي من Microsoft إلى أنه قد تم اختبار برنامج التشغيل بطريقة معينة لتحقيق الاستقرار ولم يتم تعديل رمزه بعد ذلك. لهذا السبب لا ينصح باستخدامه.

يبقى أن تضغط إنهاءوستظهر نافذة معلومات تفيد بأنك بحاجة إلى إعادة تشغيل النظام حتى تصبح التغييرات سارية المفعول.

نصيحة. يمكن أيضًا تمكين وضع التحقق للسائق من سطر الأوامر. على سبيل المثال ، لتشغيل Driver Verifier بالإعدادات الافتراضية لـ myPCDriver.sys ، سيبدو الأمر كما يلي:

المدقق / القياسي / برنامج التشغيل myPCDriver.sys

بعد إعادة التشغيل ، يتم تشغيل النظام في وضع فحص السائق. يتم تشغيل Driver Verifier في الخلفية ، مع إجراء أنواع مختلفة من الاختبارات على برامج التشغيل المحددة بحثًا عن الأخطاء. استخدم جهاز الكمبيوتر الخاص بك كالمعتاد وانتظر ظهور شاشة الموت الزرقاء. إذا كنت تعرف الإجراءات التي تسببت في تعطل النظام من قبل ، فكررها. في حالة الموت الزرقاء ، يجب نسخ ملف تفريغ الذاكرة (افتراضيًا ، يتم تخزينه في دليل C: \ Windows \ Minidump \ *. dmp) أو ما يعادله.

مهم!بعد تنشيط وضع تصحيح أخطاء برنامج التشغيل باستخدام Driver Verifier ، سيعمل هذا الوضع حتى يتم تعطيله قسريًا.

في حالة عدم تكرار المشكلة في غضون يوم أو يومين ، عندئذٍ بدرجة معينة من اليقين ، يمكن استنتاج أن برامج التشغيل التي يتم فحصها ليست سبب تعطل النظام ويمكن إيقاف تشغيل وضع الفحص الخاص بهم.

نصيحة. يؤدي استخدام Windows Driver Verifier إلى إبطاء Windows بشكل كبير ، لذلك لا يوصى بتشغيله في هذا الوضع طوال الوقت.

يمكنك تعطيل التحقق من Driver Verifier من سطر الأوامر:

المدقق / إعادة التعيين

أو من واجهة المستخدم الرسومية بتحديد العنصر حذف الإعدادات الموجودة.

في حالة عدم تمكنك من تسجيل الدخول إلى النظام في الوضع العادي ، يمكنك أيضًا تعطيل وضع التصحيح من الوضع الآمن.

في حالة عدم تمهيد النظام حتى في الوضع الآمن ، حاول حذف المفاتيح التالية في السجل عن طريق التمهيد من قرص التمهيد:

  • HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ VerifyDrivers
  • HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ VerifyDriverLevel

يمكنك التحقق من الحالة الحالية لأداة Driver Verifier على النحو التالي.


في بعض الأحيان ، قد يكون سبب أخطاء DRIVER_VERIFIER_DETECTED_VIOLATION المتعلقة بالأجهزة هو تلف الذاكرة (RAM). إذا كنت تواجه عمليات إعادة تشغيل عشوائية للكمبيوتر أو أصوات تنبيه أو مشكلات أخرى في الكمبيوتر (بالإضافة إلى أخطاء الموت الزرقاء 0xC4) ، فمن المحتمل جدًا وجود تلف في الذاكرة. في الواقع ، ما يقرب من 10٪ من أعطال تطبيقات Windows ناتجة عن تلف الذاكرة.

إذا قمت مؤخرًا بإضافة ذاكرة جديدة إلى جهاز الكمبيوتر الخاص بك ، فإننا نوصي بإزالتها مؤقتًا للتأكد من أنها لا تسبب خطأ DRIVER_VERIFIER_DETECTED_VIOLATION. إذا أدى هذا الإجراء إلى إصلاح شاشة الموت الزرقاء ، فهذا هو مصدر المشكلة ، وبالتالي فإن الذاكرة الجديدة إما غير متوافقة مع بعض أجهزتك أو تالفة. في هذه الحالة ، ستحتاج إلى استبدال وحدات الذاكرة الجديدة.

إذا لم تكن قد أضفت أي ذاكرة جديدة ، فإن الخطوة التالية هي إجراء اختبار تشخيصي على الذاكرة الحالية لجهاز الكمبيوتر الخاص بك. يسمح لك اختبار الذاكرة بالمسح بحثًا عن حالات فشل الذاكرة الحادة والأخطاء المتقطعة التي قد تتسبب في وفاة شاشتك الزرقاء 0xC4.

بينما تتضمن الإصدارات الحديثة من Windows أداة مساعدة لاختبار ذاكرة الوصول العشوائي ، فإنني أوصي بشدة باستخدام Memtest86 بدلاً من ذلك. Memtest86 هو برنامج اختبار قائم على BIOS ، بخلاف برامج الاختبار الأخرى التي تعمل في بيئة Windows. ميزة هذا الأسلوب هي أن الأداة تتيح لك التحقق من كل ذاكرة التشغيل بحثًا عن أخطاء DRIVER_VERIFIER_DETECTED_VIOLATION ، بينما لا تستطيع البرامج الأخرى التحقق من مناطق الذاكرة التي يشغلها البرنامج نفسه ونظام التشغيل والبرامج الأخرى قيد التشغيل.



نوصي بالقراءة

قمة