تبلیغات
تبلیغات


برخی از محصولات فروشگاه نواندیشان
پکیج آموزشی الکترونیک - مخابرات پکیج آموزشی قدرت - کنترل مجموعه کامل Solidworks
نقشه gis منطقه 1 تهران نقشه کد کامل تهران به صورت قطعه بندی شده نقشه gis منطقه 5 تهران
نقشه gis منطقه 2 تهران جزوه آموزش ADO نقشه gis منطقه 6 تهران
نقشه gis منطقه 3 تهران مجموعه مقالات مهندسی مکانیک ساخت و تولید نقشه gis منطقه 12 تهران

درخواست و دانلود مقالات علمي رايگان | انجام پروژه های معماری | مسابقات تالارها | ترجمه مقالات تخصصی با قیمت دانشجویی
صفحه 1 از 6 12345 ... آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 56

موضوع: بررسی دلایل خطای صفحه آبی ویندوز ( bsod )

  1. #1
    کاربر فعال

    تاریخ عضویت
    20-07-2010
    نوشته ها
    2,708
    سایر رشته ها
    امتياز طلايي
    12
    سپاس
    0
    52 سپاس در 21 پست
    امتياز:22385Array


    پیش فرض بررسی دلایل خطای صفحه آبی ویندوز ( bsod )



    سلام

    موضوع از این قراره که دیشب لپتاپم دچار مشکل عجیب و غریب و روو اعصاب Blue Screen of death شد و مکررا این خطای صفحه آبی ، روی LCD لپتاپ ظاهر میشد. به هر نحوی بود مشکل رو حل کردم و به این فکر افتادم که خیلی از کاربرای ایرانی ، این مشکل رو دارن و راه حل درست و نزدیکی رو برای این مشکل پیدا نکردن.
    توو این تاپیک با کمک هم سعی میکنیم یه مقدار از زاویه ی تخصصی تر به این مشکل نگاه کنیم و راه حل های مناسبی رو برای این سری از خطاها پیدا کنیم . البته باید بگم که بررسی تخصصی این دلایل این مشکل چیزی نیست که در حیطه ی یه کاربر معمولی مثل من باشه. بررسی تخصصی این مشکل وظیفه ی یه برنامه نویس حرفه ای و مسلط به زیروبم و ساختار سیستم عامل ویندوز هست که شاخه ای به اسم Debugging رو بوجود اورده. ولی خب ، چیزایی که توو این تاپیک در موردش بحث میکنیم حداقل فایده ای که داره اینه که باعث میشه یه کاربر معمولی ، لااقل از یک قدم نزدیک تر به مشکل نگاه کنه که همین یک قدم نزدیک تر ممکنه منجر به حل مشکل بشه.

    اول لازمه مشخص بشه BSOD چی هست :

    خطای صفحه آبی خطاییه که در سری سیستم عامل های ویندوز پیدا میشه و یه حالت بحرانی از سیستم رو گزارش میکنه و باعث Crash کردن سیستم میشه. این حالت بحرانی دلایل بسیار متنوعی داره ولی عمده ترین دلایلش میتونه مشکلات مربوط به درایور ها باشه.
    وقتی گفتم مشکلات مربوط به درایور ها ، درواقع نباید فکر کنیم این درایور ها ، فقط به درایور های سخت افزاری مربوط میشن. درایور ها و سیستم فایل هایی که نرم افزار های آنتی ویرووس ، فایروال و درایوهای مجازی هم تولید میکنن ، نوعی درایور هستن.
    به هر حال زمانی که این درایوری به هر دلیلی مشکل پیدا کرد ، ویندوز برای جلوگیری از صدمات سخت افزاری ، سیستم رو به حالت معلق در میاره که هیچ دستور العملی اجرا نشه و این زمانیه که BSOD پیداش میشه.

    برای اینکه بهتر متوجه قضیه بشیم باید بگم بطور کل ، Application ها در دو حالت در سیستم عامل ها اجرا میشن :

    حالت User Mode و حالت Kernel Mode .

    حالت User Mode حالتیه که Application مورد نظر برای اجرای دستوراتش ، دسترسی مستقیم به سخت افزار مربوطه نداره. در این حالت ، Application مورد نظر به کمک نرم افزار های واسطه یا همون API ها ، با سخت افزار ها تعامل داره. برای مثال : وقتی شما یه بازی رو اجرا میکنین ، این بازی بطور مستقیم به کارت گرافیک و سایر منابع سیستم دسترسی نداره. این دسترسی توسط API هایی نظیر Direct X به کارت گرافیک و سایر منابع سیستم داده میشه.

    اما حالت Kernel Mode حالتیه که Application ها دسترسی مستقیم به سخت افزار ها و منابع سیستم دارن. این نوع Application ها در واقع همون درایور ها میتونن باشن که بطور مستقیم با سخت افزار ها تعامل دارن. وقتی Application ایی در سطح Kernel Mode اجرا بشه ، سرعت دسترسی اون به منابع سیستم بالا تر میره و دستورات با سرعت بالاتری اجرا میشن ولی خب ، پایداری کمتری دارن. از اون طرف ، Application هایی که در سطح User Mode اجرا میشن چون به واسطه ی API ها با منابع سیستم در ارتباطن سرعت کمتری دارن ، ولی پایداری بالاتری دارن.

    نکته ای که مهمه اینه که خطای صفحه آبی فقط در مواقعی رخ میده که برنامه ای در سطح Kernel Mode با مشکل مواجه شده باشه و از اونجایی که برنامه های Kernel Mode دسترسی مستقیم به سخت افزار ها و منابع سیستم دارن ، ویندوز برای جلوگیری از صدمه دیدن منابع سیستم ، خطای صفحه آبی رو ظاهر میکنه و سیستم رو از کار میندازه.

    خب تا اینجا متوجه شدیم که خطای صفحه آبی در حالتی ظاهر میشه که برنامه ای در حالت Kernel Mode اجرا شده باشه و یه دستورالعمل غیر درست و غیرمجاز رو ارسال کنه.
    وقتی این اتفاق افتاد و خطای صفحه آبی ظاهر شد ، فایلی از نوع dmp ایجاد میشه که حاوی اطلاعات بسیار مفیدی از حالت سیستم در زمان Crash هست. این فایل ها که Dump نامیده میشن سه نوع مختلف دارن :

    • Complete Memory Dump
    • Kernel Memory Dump
    • Small Memory Dump

    تفاوت کلی این نوع فایل ها ، در سایز اوناست بطوری که اولی حجم بالاتری داره و حاوی تمام اطلاعات موجود در Ram در زمان خطا هست و دو تا فایل بعدی حجم کم تری و قاعدتا اطلاعات کمتری هم دارن. این فایل ها هرکدوم ارزش خاص خودشون رو دارن ، مثلا فایل های اولی با اینکه حجم بالایی دارن ولی حاوی کاملترین اطلاعات هستن که میشه به کمک اونا دلیل خطا رو شناسایی کرد ولی از اونجایی که حجم بالایی دارن ، زمان زیادی رو باید برای نوشته شدن اون فایل ها صرف کرد که این فاکتور زمانی در کامپیوتر هایی که نیاز به راه اندازی مجدد دارن ( نظیر سرور ها ) قابل اهمیت هست.

    فایل های دوم که Kernel Memory Dump هستن ، نسبت به فایل های اول ، حجم به مراتب کمتری دارن. تفاوتی که بین این دو فایل وجوود داره اینه که : فایل های Kernel Memory Dump همونطوری که از اسمش مشخصه تنها اطلاعاتی که مربوط به حالت Kernel Mode هست رو در خودش ذخیره میکنه ( اطلاعات مربوط به خطای صفحه آبی ) و اطلاعات User Mode رو در خودش ذخیره نمیکنه ولی Complete Memory Dump تمام اطلاعاتی که در زمان کرش کردن سیستم در حافظه مونده بود رو در خودش ذخیره میکنه . بنابراین ، فایل های Kernel Memory Dump در اکثر اوقات مفید ترین فایل برای بررسی خطاهای صفحه آبی هستن چون مستقیما با حالت Kernel Mode در ارتباط هستن.

    در آخرم فایل های Small Memory Dump کم اهمیت ترین فایل ها هستن که فقط حاوی کد و یه سری اطلاعات جزئی از خطا هستن و کم ترین حجم رو دارن.

    برای اینکه ما بتونیم دلایل خطای صفحه آبی رو بررسی کنیم نیاز به این فایل های Dump داریم که گفته شد Kernel Memory Dump مفید ترین فایل در اکثر اوقات هست. ما باید سیستم عامل رو جوری تنظیم کنیم که بعد از هر خطای صفحه آبی ، بطور اتوماتیک فایل Kernel Memory Dump رو برای ما تولید کنه.
    کاری که میکنیم اینه که به مسیر زیر میریم :

    Start--> Control Panel---> Systems ---> Advanced System Setting
    پنجره ی زیر باز میشه که باید به قسمت های مشخص شده بریم :



    وقتی روی Settings کلیک کردیم پنجره ی زیر باز میشه :
    توو این پنجره ما میتونیم مشخص کنیم که چه نوع فایل Dump ایی در زمان خطای صفحه آبی تولید بشه تا ما از اون استفاده کنیم.
    بهترین انتخاب ، انتخاب گزینه ی Kernel Memory Dump هست.



    ادامه داره . . .

    ....

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    سن
    2010
    نوشته ها
    Many
     

  3. #2
    کاربر فعال

    تاریخ عضویت
    20-07-2010
    نوشته ها
    2,708
    سایر رشته ها
    امتياز طلايي
    12
    سپاس
    0
    52 سپاس در 21 پست
    امتياز:22385Array


    پیش فرض


    آنالیز فایل های Kernel Dump برای تشخیص دلیل خطا. . .

    توو بخش قبلی معلوم شد وقتی خطای صفحه آبی رخ بده ، فایل هایی از نوع .dmp بوجود میاد که حاوی اطلاعات موجود در رم در زمان بروز خطا هست.آدرس این فایل ها C:\Windows\Minidump هست.
    برای اینکه بتونیم بررسی کنیم که چه اتفاقی برای ویندوز افتاده ، نیازه که این فایل ها بررسی بشن.
    این فایل ها در محیط ویندوز به این راحتیا باز نمیشن و باید با نرم افزار های مخصوص این فایل ها رو بررسی کرد.
    نرم افزارهایی که قادر به آنالیز فایل های Kernel Dump هستن به Kernel Debugger معروف هستن.
    بهترین Kernel Debugger ایی که میشه برای آنالیز این فایل ها استفاده کرد ، نرم افزار WinDbg هست.
    این نرم افزار بصورت یه پکیج به نام Windows SDK در سایت مایکروسافت وجود داره که دارای دو نسخه ی 32bit و 64bit هست. واضحه که برای سیستم عامل 64 بیت ، ما از نسخه ی 64 بیتی استفاده میکنیم و برای 32 بیت ، از نسخه ی 32 بیت.
    برای دانلود وارد [لینک فقط برای اعضای ثبت نام شده قابل مشاهده می باشد ] شین و فایل کم حجم 498 کیلوبایتی رو دانلود کنین.
    بعضی از Component های Windows SDK برای نصب نیاز به .Net Framework 4 داره ولی برای نصب WinDbg نیازی به این فایل نداریم.
    بعد از دانلود ، فایل رو اجرا کنین و اگه خطایی در رابطه با .Net مشاهده کردین ازش رد شین.
    برای نصب این Debugger باید به اینترنت وصل باشین تا توسط این فایل 498 کیلوبایتی دانلود بشه.
    بعد از اجرای این فایل ، مهم ترین بخشی که باهاش روبرو میشین ، تصویر زیر هست :



    ما فقط به نرم افزار Debugger نیاز داریم پس فقط گزینه ی Debugging Tools For Windows رو تیک میزنیم.
    این نرم افزار حدود 85 مگابایت حجم داره و با زدن دکمه ی Next دانلود و نصب آغاز میشه.
    بعد از نصب برنامه ، میتونیم از منوی استارت و قسمت All programs پوشه ای به اسم Debugging tools for windows رو پیدا کنیم و برنامه ی WinDbg رو باز کنیم. مثل عکس زیر :



    وقتی برنامه رو باز کردیم باید یه سری تنظیمات روی برنامه انجام بدیم.
    مهم ترین کاری که باید انجام بدیم تنظیم مسیر Symbol ها برای عملیات Debugging هست.
    وقتی یه Application یا یه فایل DLL ساخته میشه ، در بخشی از عملیات تولید و کامپایل کردن اون فایل یه سری فایل های اضافی هم تولید میشه . این فایل های اضافی در واقع Symbol ها هستن.
    برای اجرا کردن Application و DLL ها ، نیازی به Symbol نداریم و در واقع برنامه ها بدون نیاز به این سمبل ها قادر به اجرا شدن هستن ولی وقتی ما نیاز به Debug کردن یه برنامه داشته باشیم ، داشتن این سمبل ها اهمیت زیادی داره.
    وقتی ما از WinDbg برای عملیات Debugging استفاده میکنیم ، باید مسیر Symbol های مورد نیاز رو هم برای اون مشخص کنیم تا به کمک اون سمبل ها بتونه اطلاعات مورد نیاز رو از فایل dump آنالیز کنه.
    اهمیت این سمبل ها زمانی مشخص میشه که وقتی شما بخواهین یه Kernel Dump رو بدون قرار دادن مسیر سمبل ها آنالیز کنین ، بعد از لود کردن اون فایل dmp ، با خطای Symbols could not be loaded مواجه میشین.
    هر سری از سیستم عامل های ویندوز با هر نوع ویرایش و سرویس پک ، Symbol های خاص و مجزای خودش رو داره. برای مثال سمبل Windows 7 Service Pack 1 با Service Pack 2 این سیستم عامل تفاوت داره و باید سمبل های جداگانه رو برای عملیات Debugging دانلود کرد و مسیرشون رو در WinDbg تنظیم کرد. اگه شما سمبلی رو به اشتباه دانلود کنید و از اون استفاده کنید ، اطلاعات آنالیزی که از WinDbg بدست میاد هم اشتباه خواهد بود. همچنین اگه این فایل های Symbol از Kernel سیستم عامل شما قدیمی تر یا جدید تر باشه هم با مشکل مواجه میشید.
    کاری که میشه بجای دانلود کردن سمبل های مورد نیاز انجام داد اینه که برنامه رو جوری تنظیم کنیم تا سمبل های مورد نیازش رو بطور آنلاین از Microsoft Symbol Server دریافت کنه. البته دانلود کردن آنلاین این سمبل ها نیاز به اینترنت پرسرعت داره چون ممکنه برای هر عملیات Debugging چندین مگابایت سمبل رو دریافت کنه و برای همین ، عملیات آنالیز ممکنه دقایقی طول بکشه. ولی به هر حال مطمئن ترین روش برای دریافت سمبل های صحیح هست.

    بعد از باز کردن برنامه ، از منوی File گزینه ی Symbol File Path رو انتخاب میکنیم تا آدرش فایل های سمبل رو برای دریافت آنلاین ، به برنامه بدیم.
    وقتی این گزینه رو انتخاب کردیم ، کادری باز میشه که با باید آدرس زیر رو در اون وارد کنیم :

    SRV*c:\symbols*[لینک فقط برای اعضای ثبت نام شده قابل مشاهده می باشد ]



    در این دستور ما به برنامه گفتیم برای هر عملیات آنالیز ، فایل های سمبل مورد نیاز رو از سرور مایکروسافت دانلود کن و اونها رو در درایو C و پوشه ی symbols ذخیره کن. لازم به ذکره که وقتی WinDbg سمبل هایی رو دریافت کرد ، اونارو در مسیری که مشخص کردیم ذخیره میکنه ، پس اگه دوباره در یه آنالیز دیگه به سمبل های مشابه نیاز پیدا کرد دیگه اونارو دانلود نمیکنه بلکه از همین فایل Symbols موجود در درایو C استفاده میکنه. ما میتونیم آدرس ذخیره سازی Symbol هارو به هر مکانی که دوست داریم منتقل کنیم. برای مثال درایو D و . . که بستگی به خودتون داره.
    بعد از دادن آدرس و زدن OK ، از منوی File گزینه ی Save WorkSpace رو انتخاب کنین تا تغییرات برای همیشه ذخیره بشه و در هر سری از آنالیز ، نیازی به وارد کردن آدرس سمبل ها نباشه.
    بعد از ذخیره سازی محیط کار ، کار تنظیم WinDbg به پایان رسید و میتونیم عملیات Debugging رو شروع کنیم.

    بازم تکرار میکنم که عملیات آنالیز و Debugging چیزی نیست که کار هرکسی باشه و یه شاخه ی مجزا در علم کامپیوتر داره که نیاز به دانش بالای برنامه نویسی و ساختار سیستم عامل داره.
    کاری که ما اینجا انجام میدیم پیدا کردن یه سری اطلاعات سطحی از فایل های Dump هست تا بتونیم بفهمیم خطای صفحه آبی از کجا نشات گرفته و بتونیم تا حدی حلش کنیم. در واقع همین اطلاعات سطحی که بدست میاریم در بسیاری از مواقع راهگشا هست و میتونیم مشکلمون رو حل کنیم.
    پس امیدوارم از من انتظار نداشته باشین در حد یه مهندس مایکروسافت بتونم یه فایل DMP رو آنالیز کنم.

    در پست بعد یه سری فایل Dump رو با هم آنالیز میکنیم و سعی میکنیم تا حدی بفهمیم علت خطای صفحه آبی چی بوده.

    ادامه داره . . . .
    ....

  4. #3
    کاربر فعال

    تاریخ عضویت
    20-07-2010
    نوشته ها
    2,708
    سایر رشته ها
    امتياز طلايي
    12
    سپاس
    0
    52 سپاس در 21 پست
    امتياز:22385Array


    پیش فرض

    خب در پست های قبلی یه مقدار در مورد دلایل خطای صفحه آبی صحبت کردیم و متوجه شدیم خطای صفحه آبی زمانی رخ میده که یکی از Application های Kernel Mode ، دستورالعمل غیرمجازی رو ارسال میکنه و سیستم عامل برای جلوگیری از صدمات و . . . سیستم رو به حالت تعلیق در میاره و صفحه ی آبی مرگ پیداش میشه.همینطور متوجه شدیم بعد از هر خطای صفحه آبی ، با توجه به تنظیماتی که انجام میدیم یه سری فایل های dmp تولید میشه که به ما در مورد دلایل این خطا ، اطلاعات زیادی میده.
    توو این پست سعی میکنیم یه مقدار در مورد ساختار یه خطای صفحه آبی صحبت کنیم و در آخر هم یه فایل Dump رو به کمک نرم افزار WinDbg آنالیز کنیم تا تاحدی متوجه شیم مشکل چی بوده.

    شکل و شمایل دقیق یه خطای صفحه آبی به نوع خطا برمیگرده و با توجه به انواع خطایی که ممکنه رخ بده ، تغییر میکنه . ولی بطور کل ، یه خطای صفحه آبی حاوی کد خطا و یه سری اطلاعات پایه ای دیگه از خطای به وقوع پیوسته هست. بعنوان مثال عکس زیر یه نوع خطای صفحه آبی رو نشون میده :



    این عکس با اینکه عکس زیاد دلچسب و user friendly ایی نیست ، ولی حاوی نکات قابل توجهی هست.
    در اول عکس چیزی به اسم STOP و یه کد Hexadecimal میبینیم.
    این کد Hexadecimal در واقع کد خطای به وقووع پیوسته هست. در واقع این کد به ما نشون میده که چه نوع خطایی در سیستم ایجاد شده که باعث پیدا شدن صفحه ی آبی شده.
    هر خطا کد Hexadecimal خاص خودش رو داره و هر کد Hexadecimal ، اسم سمبولیک خاص خودش رو داره.
    برای مثال در عکس بالا ، کد خطای ایجاد شده ، 0x79 هست. ما میتونیم اسم سمبولیک این خطا و اطلاعات پایه ای از دلایل کلی این خطا رو از کتابخونه ی آنلاین مایکروسافت و یا Help نرم افزار WinDbg بدست بیاریم. تصویر زیر ، Help نرم افزار WinDbg و قسمت Bug check ها رو نشون میده که حاوی کد تمامی خطاهای رایج صفحه آبی هست :



    من با جستجو در این Help متوجه شدم ، اسم سمبلیک و دلایل کلی خطای با کد 0x79 چی هست :

    اسم سمبولیک خطا : MISMATCHED_HALT

    دلایل عمده : زمانی که کاربر قصد آپدیت دستی کرنل ویندوز ( Ntoskrnl.exe ) و Hal.dll رو داشته باشه.
    این خطا همچنین به این دلیل رخ میده که این فایل ها ، قدیمی باشن . برای مثال Hal.dll ممکنه برای ویندوز 2000 طراحی شده باشه و نسخه ی Ntoskrnl.exe برای ویندوز XP باشه.

    راه حل : میتونیم با سی دی ویندوز ، وارد قسمت ریکاوری شیم و فایل های Hal.dll و Ntoskrnl.exe رو با دستورات Copy و . . . جایگزین فایل های قدیمی کنیم.

    خب چیزی که مشخص شد اینه که یکی از مهم ترین منابع برای بدست اوردن دلایل خطای صفحه آبی ، استفاده از راهنمای WinDbg هست که واقعا هم راهنمای جامع و کاربردی ایی هست.

    دوباره به عکس خطای صفحه آبیمون بر گردیم :
    گفتیم در مقابل STOP ، یه کد Hexadecimal وجوود داره که نشون دهنده ی نوع خطاست.
    خب اگه دوباره به عکس بالا نگاه کنین میبینین در مقابل کد خطا ، یه پرانتزی باز شده که حاوی 4 قسمت هست . هر یک از اون قسمت ها ، پارامتری هستن که به کمک این پارامتر ها میشه نوع خطا رو بهتر متوجه شد. اینجا هم قسمت راهنمای نرم افزار WinDbg به کمک ما میاد. برای مثال در قسمت راهنمای کد 0x79 نوشته شده که : اگه پارامتر اول ، 0x2 باشه ، سایر پارامتر ها نشون دهنده ی چی هستن و دلیل دقیق تر خطا دقیقا چی میتونه باشه.

    خب تا اینجا متوجه شدیم ساختار کلی خطای صفحه آبی چیه.
    بیاین یه مقدار دقیق تر بررسی کنیم :
    توو این قسمت میخوام به کمک WinDbg و تنظیماتی که توو پست های قبل انجام دادیم ، یه فایل Kernel Dump رو که در زمان خطای صفحه آبی تولید شده ، باز کنم و در حد خودم بفهمم جریان از چه قرار بوده که این خطا بوجود اومده .

    برای شروع به اینترنت وصل میشم و نرم افزار WinDbg رو باز میکنم.

    از منوی File گزینه ی Open Crash Dump رو انتخاب میکنم و فایل Dump ایی که بوجود اومده رو وارد نرم افزار میکنم. دقت کنین : زمانی که شما میخواین فایل Kernel Dump رو از پوشه ی Minidump باز کنین ، چون این فایل ، یه فایل محافظت شده هست ، با خطا مواجه میشین . پس بهتره فایل های Dump ایی که تولید میشه رو یه جا کپی کنین و از همون فایل های کپی شده برای آنالیز استفاده کنین.

    وقتی فایل Dump رو باز کردم ، نرم افزار شروع به اتصال به اینترنت میکنه و مشخصات پایه ای این فایل Dump رو به من نشون میده . از این قسمت به بعد چون به اینترنت وصل میشیم ، ممکنه یه مقدار طول بکشه.
    تصویر زیر ، مرحله ی اول رو نشون میده :



    خب قبل از اینکه دکمه ی Analyze رو فشار بدیم ، بهتره یه نگاهی به اطلاعاتی که دورش خط قرمز کشیدم بندازیم :
    این اطلاعات ، پایه ای ترین اطلاعات رو مشخص میکنه که قسمت های جالبش رو مشخص کردم.
    اولی ، مشخصات دقیق سیستم عامل رو مشخص میکنه که همونطور که میبینین ، سیستم عامل Windows 7 Service Pack 1 X86 هست و دومین خط ، زمانی که سیستم تا قبل از بروز خطای صفحه آبی ، فعال بوده. اینجا سیستم حدود 31 دقیقه فعالیت داشته و بعد از 31 دقیقه ، خطای صفحه آبی پیداش شده.

    خب حالا شروع به آنالیز میکنیم.
    دکمه ی آنالیز رو فشار میدیم و منتظر میمونیم تا کار آنالیز و دریافت آنلاین سمبل های مورد نیاز به پایان برسه. بعد از انجام آنالیز ، به انبوهی از کد های مختلف بر میخوریم که مورد کلیش به شکل زیر هست :

    Microsoft (R) Windows Debugger Version 6.12.0002.633 AMD64
    Copyright (c) Microsoft Corporation. All rights reserved.


    Loading Dump File [C:\Users\Hoseing\Desktop\Minidump\091011-21481-01.dmp]
    Mini Kernel Dump File: Only registers and stack trace are available

    WARNING: Whitespace at end of path element
    Symbol search path is: SRV*c:\symbols*[لینک فقط برای اعضای ثبت نام شده قابل مشاهده می باشد ]
    Executable search path is:
    Windows 7 Kernel Version 7601 (Service Pack 1) MP (4 procs) Free x86 compatible
    Product: WinNt, suite: TerminalServer SingleUserTS
    Built by: 7601.17640.x86fre.win7sp1_gdr.110622-1506
    Machine Name:
    Kernel base = 0x82e1a000 PsLoadedModuleList = 0x82f634f0
    Debug session time: Sat Sep 10 09:28:08.315 2011 (UTC + 4:30)
    System Uptime: 0 days 0:30:58.642
    Loading Kernel Symbols
    .................................................. .............
    .................................................. ..............
    .................................................. .
    Loading User Symbols
    Loading unloaded module list
    .........
    ************************************************** *****************************
    * *
    * Bugcheck Analysis *
    * *
    ************************************************** *****************************

    Use !analyze -v to get detailed debugging information.

    BugCheck A, {0, 2, 0, 82e939fc}

    Probably caused by : dxgmms1.sys ( dxgmms1!VIDMM_GLOBAL::ProcessTerminationCommand+51 )

    Followup: MachineOwner
    ---------

    0: kd> !analyze -v
    ************************************************** *****************************
    * *
    * Bugcheck Analysis *
    * *
    ************************************************** *****************************

    IRQL_NOT_LESS_OR_EQUAL (a)
    An attempt was made to access a pageable (or completely invalid) address at an
    interrupt request level (IRQL) that is too high. This is usually
    caused by drivers using improper addresses.
    If a kernel debugger is available get the stack backtrace.
    Arguments:
    Arg1: 00000000, memory referenced
    Arg2: 00000002, IRQL
    Arg3: 00000000, bitfield :
    bit 0 : value 0 = read operation, 1 = write operation
    bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
    Arg4: 82e939fc, address which referenced memory

    Debugging Details:
    ------------------


    READ_ADDRESS: GetPointerFromAddress: unable to read from 82f83848
    Unable to read MiSystemVaType memory at 82f62e40
    00000000

    CURRENT_IRQL: 2

    FAULTING_IP:
    nt!KiSignalSynchronizationObject+15
    82e939fc 8b07 mov eax,dword ptr [edi]

    CUSTOMER_CRASH_COUNT: 1

    DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT

    BUGCHECK_STR: 0xA

    PROCESS_NAME: System

    TRAP_FRAME: 9e32dc14 -- (.trap 0xffffffff9e32dc14)
    ErrCode = 00000000
    eax=859bada8 ebx=859badb0 ecx=00000002 edx=00000000 esi=00000000 edi=00000000
    eip=82e939fc esp=9e32dc88 ebp=9e32dc98 iopl=0 nv up ei pl nz na pe cy
    cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010207
    nt!KiSignalSynchronizationObject+0x15:
    82e939fc 8b07 mov eax,dword ptr [edi] ds:0023:00000000=????????
    Resetting default scope

    LAST_CONTROL_TRANSFER: from 82e939fc to 82e5b5db

    STACK_TEXT:
    9e32dc14 82e939fc badb0d00 00000000 9e32dcc4 nt!KiTrap0E+0x2cf
    9e32dc98 82e91553 82f44d20 859bada8 89969390 nt!KiSignalSynchronizationObject+0x15
    9e32dcc4 94108e77 859bada8 00000000 00000000 nt!KeSetEvent+0x8e
    9e32dcf0 9410a4c8 00000000 9e32dd18 9411e1df dxgmms1!VIDMM_GLOBAL::ProcessTerminationCommand+0x 51
    9e32dcfc 9411e1df 88bcbf08 89969390 89969390 dxgmms1!VidMmiProcessTerminationCommand+0x10
    9e32dd18 9411f18f 858bc648 858bf3f8 9e32dd3c dxgmms1!VidSchiSubmitDeviceCommand+0x33
    9e32dd28 9411f3de 89969390 82e51509 88887788 dxgmms1!VidSchiSubmitQueueCommand+0xaf
    9e32dd3c 9411f485 88887788 00000000 888a8c20 dxgmms1!VidSchiRun_PriorityTable+0x24
    9e32dd50 83022fda 88887788 b7c54225 00000000 dxgmms1!VidSchiWorkerThread+0x7f
    9e32dd90 82ecb1d9 9411f406 88887788 00000000 nt!PspSystemThreadStartup+0x9e
    00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x19


    STACK_COMMAND: kb

    FOLLOWUP_IP:
    dxgmms1!VIDMM_GLOBAL::ProcessTerminationCommand+51
    94108e77 56 push esi

    SYMBOL_STACK_INDEX: 3

    SYMBOL_NAME: dxgmms1!VIDMM_GLOBAL::ProcessTerminationCommand+51

    FOLLOWUP_NAME: MachineOwner

    MODULE_NAME: dxgmms1

    IMAGE_NAME: dxgmms1.sys

    DEBUG_FLR_IMAGE_TIMESTAMP: 4d4a24c1

    FAILURE_BUCKET_ID: 0xA_dxgmms1!VIDMM_GLOBAL::ProcessTerminationComman d+51

    BUCKET_ID: 0xA_dxgmms1!VIDMM_GLOBAL::ProcessTerminationComman d+51

    Followup: MachineOwner
    ---------
    خبب میبینین که به کلی کد شلوغ برخوردیم.
    برای سادگی من کد ها رو قسمت میکنم و جاهایی رو که تاحدی میفهمم چی به چیه رو مشخص میکنم و توضیح میدم :

    قسمت اول ، کد زیر هست :

    IRQL_NOT_LESS_OR_EQUAL (a)
    An attempt was made to access a pageable (or completely invalid) address at an
    interrupt request level (IRQL) that is too high. This is usually
    caused by drivers using improper addresses.
    If a kernel debugger is available get the stack backtrace.
    Arguments:
    Arg1: 00000000, memory referenced
    Arg2: 00000002, IRQL
    Arg3: 00000000, bitfield :
    bit 0 : value 0 = read operation, 1 = write operation
    bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
    Arg4: 82e939fc, address which referenced memory
    قسمت اول که ما از این آنالیز بدست میاریم ، قسمت bug check یا همون کد خطاست.
    مشخصه که کد خطای این فایل ، 0xa هست و اسم سمبولیک اون : IRQ_NOT_LESS_OR_EQUAL .
    قسمتی که به نام Argument قرمز شده در واقع همون پارامتر های روبروی کد خطا هست.
    برای درک قسمت اول این کد ، بهتره وارد قسمت راهنمای WinDbg یا [لینک فقط برای اعضای ثبت نام شده قابل مشاهده می باشد ] بشیم تا بفهمیم بطور کلی ، چه اتفاقی برای سیستم افتاده که این خطا بوجود اومده :

    خب با مطالعه ی راهنما متوجه میشیم که این خطا زمانی اتفاق میفته که یک پروسه ای که در حالت Kernel Mode اجرا میشه ، سعی داشته به بخشی از حافظه دسترسی پیدا کنه که اجازه ی دسترسی به اون رو نداشته و میخواسته بطور غیر قانونی به اون آدرس ، دسترسی پیدا کنه. در ادامه توضیحاتی رو هم در مورد دلیل این خطا میده که میتونه : یه درایور ناهماهنگ و . . . باشه.

    خب برسیم به قسمت Arguments .
    این قسمت همونطور که گفتم همون پارامتر های مربوط به خطاست که معنی خاص خودش رو دارن.
    از راهنمای WinDbg متوجه شدم که :
    آرگومان اول مربوط میشه به مقصدی که دستورالعمل اشتباه به اون ارسال شده.
    آرگومان دوم مربوط میشه سطح IRQ که در اینجا برابر 2 هست. ( در مورد IRQ خودتون تحقیق کنین ولی بطور کلی مربوط میشه به مسیری که یه سخت افزار برای ارتباط با پردازنده از اون استفاده میکنه.)
    آرگومان سوم مربوط میشه به عملیات خوندن و یا نوشتن روی حافظه که مقدار اون 0 گزارش شده و اینجا یعنی خوندن.
    آرگومان چهارم هم آدرسی از حافظه هست که این خطا در اونجا رخ داده.

    خب پس بطور کلی میتونیم متوجه بشیم که این خطا به این دلیل رخ داده که برنامه ای سعی داشته در قسمتی از حافظه که آدرس اون 82e939fc هست ، در سطح IRQL=2 عمل خوندن رو انجام بده که اجازه ی این کار رو نداشته و برای این ، خطای صفحه آبی رخ داده.

    برسیم به قسمت بعد :

    FAULTING_IP:
    nt!KiSignalSynchronizationObject+15
    82e939fc 8b07 mov eax,dword ptr [edi]

    CUSTOMER_CRASH_COUNT: 1

    DEFAULT_BUCKET_ID: VISTA_DRIVER_FAULT

    BUGCHECK_STR: 0xA

    PROCESS_NAME: System

    TRAP_FRAME: 9e32dc14 -- (.trap 0xffffffff9e32dc14)
    ErrCode = 00000000
    eax=859bada8 ebx=859badb0 ecx=00000002 edx=00000000 esi=00000000 edi=00000000
    eip=82e939fc esp=9e32dc88 ebp=9e32dc98 iopl=0 nv up ei pl nz na pe cy
    cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010207
    nt!KiSignalSynchronizationObject+0x15:
    82e939fc 8b07 mov eax,dword ptr [edi] ds:0023:00000000=????????
    Resetting default scope

    LAST_CONTROL_TRANSFER: from 82e939fc to 82e5b5db

    خب در این قسمت اطلاعات یه مقدار دقیق تر میشه :

    قسمتی که به اسم Faulting IP وجود داره نشون دهنده ی قسمتی از حافظه هست که خطا در اونجا رخ داده. توو این مورد : آدرس 82e939fc رو به ما داده.

    قسمت BUGCHECK_STR هم همون کد خطا رو به ما میده.

    قسمت PROCESS_NAME هم قسمتیه که پروسه ی درگیر در زمان بروز خطا رو اعلام میکنه.
    در این نمونه ، پروسه ی System در زمان خطا ، درگیر بوده . ولی چیزی که تقریبا واضحه اینه که این پروسه به خودی خود باعث ایجاد خطا نشده! چرا؟ چون پروسه ی System یه پروسه ی مربوط به خود سیستم عامل ویندوز هست و اینکه بخواد باعث خطای صفحه آبی بشه باید خودش یه مشکل داشته باشه. چیزی که خیلی بعیده از نظر من. در ثانی خود سایت مایکروسافت هم اطلاعاتی رو در مورد خطاهای نرم افزاری پروسه ی System منتشر نکرده ، چرا که اگه غیر این بود مطمئنا یه Patch اصلاحی برای اون ارائه میکرد. بطور کل بهتره بدونین اگه پروسه ای که در این نرم افزار نام برده شد ، پروسه ای مربوط به خود سیستم عامل بود ، احتمال اینکه خود این پروسه ، باعث ایجاد خطا شده باشه بسیار کمه . جز اینکه خودش یه مشکل ذاتی داشته باشه که در این صورت ، مایکروسافت یه Patch اصلاحی برای اون منتشر میکنه . پس باید دنبال پروسه ی دیگه ای بود.

    قست مهمی وجوود داره به نام TRAP_FRAME . با کمک از راهنمای برنامه ی WinDB در مورد خطای با کد 0XA متوجه شدم ، قسمت Trap Frame قسمتیه که دقیق ترین اطلاعات در مورد خطا در اون وجوود داره.
    این اطلاعات در واقع چیزی نیست که به درد ما بخوره و بیشتر برای برنامه نویسا با ارزش هست تا دقیقا بفهمن چه دستورالعملی به وقوع پیوسته و . . . ما بیشتر به دنبال اطلاعات کلی میگردیم تا مشکل خودمون رو برطرف کنیم.

    آخرین قسمت هم آدرس هایی از حافظه رو مشخص میکنه که آخرین دستورالعمل ها قبل از خطای صفحه آبی در اوون آدرس ها انجام میشد.

    بریم قسمت بعد که قسمت اصلی خطا هست ، یعنی قسمت Stack :

    STACK_TEXT:
    9e32dc14 82e939fc badb0d00 00000000 9e32dcc4 nt!KiTrap0E+0x2cf
    9e32dc98 82e91553 82f44d20 859bada8 89969390 nt!KiSignalSynchronizationObject+0x15
    9e32dcc4 94108e77 859bada8 00000000 00000000 nt!KeSetEvent+0x8e
    9e32dcf0 9410a4c8 00000000 9e32dd18 9411e1df dxgmms1!VIDMM_GLOBAL::ProcessTerminationCommand+0x 51
    9e32dcfc 9411e1df 88bcbf08 89969390 89969390 dxgmms1!VidMmiProcessTerminationCommand+0x10
    9e32dd18 9411f18f 858bc648 858bf3f8 9e32dd3c dxgmms1!VidSchiSubmitDeviceCommand+0x33
    9e32dd28 9411f3de 89969390 82e51509 88887788 dxgmms1!VidSchiSubmitQueueCommand+0xaf
    9e32dd3c 9411f485 88887788 00000000 888a8c20 dxgmms1!VidSchiRun_PriorityTable+0x24
    9e32dd50 83022fda 88887788 b7c54225 00000000 dxgmms1!VidSchiWorkerThread+0x7f
    9e32dd90 82ecb1d9 9411f406 88887788 00000000 nt!PspSystemThreadStartup+0x9e
    00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x19

    قسمت Stack مهم ترین قسمت در این آنالیز هست.
    این قسمت تمامی توابع فراخوانی شده در زمان بروز خطا رو مشخص میکنه و پارامتر ها و آدرس های هرکدوم رو نشون میده.
    با کمی جستجو در اینترنت متوجه شدم که توابعی که در کنارشون علامت nt! وجوود داره ، توابع مربوط به خود سیستم عامل هستن که خب بعیده مشکل از خود سیستم عامل باشه ولی تابعی که یه مقدار مشکوک بود ، تابع dxgmms1 هست. با یه جستجوی کوچیک توو اینترنت متوجه شدم که این تابع ، مربوط به برنامه ی Direct X هست!! پس به احتمال زیاد ، پروسه ی System زمانی که داشته یکی از توابع برنامه ی Direct X رو فراخوانی میکرده با مشکل مواجه شده و خطای صفحه آبی پدید اومده . پس به احتمال زیاد، مشکل از خود Direct X هست.

    بریم یکم جلوتر ببینیم به کجا میرسیم :

    FOLLOWUP_IP:
    dxgmms1!VIDMM_GLOBAL::ProcessTerminationCommand+51
    94108e77 56 push esi

    SYMBOL_NAME: dxgmms1!VIDMM_GLOBAL::ProcessTerminationCommand+51

    FOLLOWUP_NAME: MachineOwner

    MODULE_NAME: dxgmms1

    IMAGE_NAME: dxgmms1.sys

    DEBUG_FLR_IMAGE_TIMESTAMP: 4d4a24c1

    FAILURE_BUCKET_ID: 0xA_dxgmms1!VIDMM_GLOBAL::ProcessTerminationComman d+51

    BUCKET_ID: 0xA_dxgmms1!VIDMM_GLOBAL::ProcessTerminationComman d+51

    Followup: MachineOwner

    خب چیزی که از این قسمت مشخص میشه اینه که احتمالا نرم افزار فایل dxgmms1 رو دلیل خطا تشخیص داده .
    در قسمت بالای این نوشته ها ، قسمتی وجوود داره به نام FOLLOWUP_IP که نشون دهنده ی آدرسی از حافظه هست که فایل dxgmm1 در اون فراخوانی شده. هر فایلی در حافظه ، آدرس خاص خودش رو داره .
    برای اینکه مطمئن بشیم آدرس داده شده ( 94108e77 ) ، متعلق به فایل dxgmm1 هست و مشکل از همین فایله ، باید چک کنیم و ببینیم آدرس شروع و آدرس پایان این فایل در حافظه چیه. اگه آدرس قرمز رنگ ، بین این آدرس شروع و پایان بود نتیجه میگیریم احتمالا تشخیص درسته و مشکل بخاطر dxgmms1 بوده.
    برای این کار در پایین پنجره ، دستور زیر رو مینویسیم :
    lmvm dxgmms1
    بعد از زدن Enter ، متن زیر رو میبینیم :.
    0: kd> lmvm dxgmms1
    start end module name
    940ed000 94126000 dxgmms1 (pdb symbols) c:\symbols\dxgmms1.pdb\DA8ACD5DDA95431082D1FD0213C 2AD001\dxgmms1.pdb
    Loaded symbol image file: dxgmms1.sys
    Mapped memory image file: c:\symbols\dxgmms1.sys\4D4A24C139000\dxgmms1.sys
    Image path: \SystemRoot\System32\drivers\dxgmms1.sys
    Image name: dxgmms1.sys
    Timestamp: Thu Feb 03 07:15:05 2011 (4D4A24C1)
    CheckSum: 00043FB4
    ImageSize: 00039000
    File version: 6.1.7601.17554
    Product version: 6.1.7601.17554
    File flags: 0 (Mask 3F)
    File OS: 40004 NT Win32
    File type: 3.7 Driver
    File date: 00000000.00000000
    Translations: 0409.04b0
    CompanyName: Microsoft Corporation
    ProductName: Microsoft® Windows® Operating System
    InternalName: dxgmms1.sys
    OriginalFilename: dxgmms1.sys
    ProductVersion: 6.1.7601.17554
    FileVersion: 6.1.7601.17554 (win7sp1_gdr.110202-1504)
    FileDescription: DirectX Graphics MMS
    LegalCopyright: © Microsoft Corporation. All rights reserved
    این دستور ، مشخصات فایل dxgmms1 رو بطور کامل به ما نشون میده و میبینیم آدرس 94108e77 ، بین آدرس اغاز و پایان قرار داره.
    خب پس احتمالا Direct X باعث ایجاد خطا شده.
    کاری که میتونیم بکنیم اینه که دایرکت ایکس رو بطور کامل پاک کنیم و دوباره نسخه ی هماهنگ با کارت گرافیکمون رو نصب کنیم.

    فایل Dump ایی که آنالیز کردیم رو هم پیوست میکنم براتون تا برای تست ازش استفاده کنین.

    سوالی بود ، در حد خودم در خدمتم . . .
    فايل هاي پيوست شده
    ....

  5. #4
    کاربر فعال

    تاریخ عضویت
    20-07-2010
    نوشته ها
    2,708
    سایر رشته ها
    امتياز طلايي
    12
    سپاس
    0
    52 سپاس در 21 پست
    امتياز:22385Array


    پیش فرض

    بازم سلام.
    توو پست های قبلی تا حدی سعی کردم به نحو تکنیکال دلایل بروز یه خطای صفحه آبی و نحوه ی برخورد با اون رو توضیح بدم. توو این پست ، یکی از راه های خوبی که ویندوز 7 پیش روی ما گذاشته رو بهتون معرفی میکنم تا راحت تر بتونیم با این مشکل ، برخورد کنیم.
    البته لازم به ذکره که این راه حل بیشتر به عنوان یه راه حل پایه برای کابرای معمولی کامپیوتر ، پیشنهاد شده و فقط به این دلیل معرفی شده که دوستانی که حوصله ی گشت زدن در فایل های Minidump رو ندارن ، بتونن بدون استفاده از راه های پیچیده برای حل کردن مشکلشون از اون استفاده کنن.
    قابلیتی که در موردش صحبت میکنیم Application ایی هست به اسم Driver Verifier که در ویندوز وجوود داره.
    این برنامه کاری که میکنه اینه که با ایجاد Stress و سایر تست ها روی درایور های Kernel Mode ، اون ها رو تست میکنه و تحت فشار قرار میده تا اگه خطایی در اونا وجوود داره ، خودش رو بصورت خطای صفحه آبی نشون بده.
    برای اجرای برنامه ، روی استارت کلیک میکنیم و در قسمت جستجو : Verifier.exe رو جتسجو میکنیم :



    بعد از بازکردن برنامه نیازه که برنامه رو Config یا پیکر بندی کنین.
    چند نوع گزینه برای انتخاب روبروی شماست.
    نوع Standard Setting که برای اکثر افراد معمولی ، کارا هست و نوع Custom که حاوی گزینه ها و روش های تست مفیدی برای برنامه نویسای حرفه ای هست تا درایورشون رو در شرایط سخت و مختلف قرار بدن.



    ما کار رو برای کاربرای عادی ادامه میدیم پس گزینه ی اول رو انتخاب میکنیم و وارد مرحله ی بعد میشیم.



    توو این مرحله باید درایور هایی که به اونا مشکوک هستیم رو لیست کنیم.
    هم میتونیم گزینه ی اتوماتیک رو انتخاب کنیم که نرم افزار برای ما این کار رو انجام بده و هم گزینه ی آخر رو انتخاب کنیم که خودمون بطور دستی این کار رو انجام بدیم.
    البته در سایت خود مایکروسافت نوشته شده که بهتره برای تست ، تمامی درایور هارو انتخاب نکنیم تا برنامه با مشکل مواجه نشه.
    برای همین من ترجیح میدم گزینه ی آخر رو انتخاب کنیم و درایوری که شک داریم روو انتخاب کنیم.
    برای مثال میتونیم تمامی درایور هایی که در توضیحات اونا نوشته شده Microsoft Corporation رو غیر فعال کنیم و فقط درایور هایی رو تیک بزنیم که مربوط به شرکتی غیر از مایکروسافت هستن.

    بعد از انتخاب درایور ها ، سیستم شروع به اسکن کردن و چندین مرحله ریستارت کردن میکنه و ممکنه چندین بار هم با خطای صفحه آبی مواجه بشین.
    این عملیات ریستارت اونقدر ادامه پیدا میکنه تا شما بتونید وارد محیط دسکتاپتون بشید.
    بعد از این کار ، Verifier درایور های مشکل دار رو بطور اتوماتیک غیر فعال میکنه تا ویندوز بتونه بالا بیاد.
    در صورتی که نتونستین وارد محیط ویندوز بشین ، میتونید با زدن F8 لیست گزینه های بوت رو باز کنین و گزینه ی Last Known Good settings رو انتخاب کنین و ویندوز رو بالا بیارین.
    بعد از اینکار ، نیازه که Verifier رو غیر فعال کنین، پس بازش میکنیم و در مرحله ی اول ، Delete Existing settings رو میزنیم و کار برنامه رو خاتمه میدیم.
    معمولا اطلاعات کلی تر از نتیجه ی عملیات در یه سری فایل Dump نوشته میشه که بعد از هر مرحله ریستارت ، سیستم اونارو تولید میکنه. میتونید برای اطلاعات دقیق تر ، اون فایل ها رو با WinDbg باز کنین و آنالیز کنین.
    راه دیگه ای که وجوود داره اینه که در مرحله ی انتخاب درایور ، گلچین کنین!
    یعنی اول از همه چند تا درایور که خیلی به اونا مشکوک هستین رو انتخاب کنین و در مراحل بعد ، این تعداد رو کمتر کنین تا درایور معیوب رو پیدا کنین.

    سوالی بود در خدمتیم.
    ....

  6. #5
    عضو جدید

    تاریخ عضویت
    21-09-2011
    نوشته ها
    29
    مهندسی کامپیوتر
    سپاس
    0
    0 سپاس در 0 پست
    امتياز:87Array

    پیش فرض

    آقا خیلی خوب بود
    دست در نکنه استفاده کردیم

  7. #6
    کاربر تازه وارد

    تاریخ عضویت
    22-10-2011
    نوشته ها
    1
    مهندسی برق
    سپاس
    0
    0 سپاس در 0 پست
    امتياز:11Array

    پیش فرض

    Page_fault_in_nonpaged_area واسه این خطا چیکار کنیم؟

  8. #7
    کاربر تازه وارد

    تاریخ عضویت
    24-11-2011
    نوشته ها
    4
    مهندسی کامپیوتر
    سپاس
    0
    0 سپاس در 0 پست
    امتياز:17Array

    پیش فرض

    با سلام خدمت شما و با تشکر از آموزش بسیار مفیدتون
    راستش به مشکلی که برای من پیش اومد این بود که
    بعد از تماشای فیلم و موقع بستن پلیر با صفحه آبی مواجه شدم
    از اونجا که سیستمم رو تازه تهیه کردم ، میخوام مطمئن بشم که از نظر سخت افزاری مشکلی نداشته باشه
    مخصوصا هارد سیستم (برای همین تصمیم گرفتم هر طور شده بفهمم دلیل این صفحه آبی چی بوده)
    با جستجو به پست شما رسیدم و قدم به قدم کارهایی رو که گفتید انجام دادم
    اما راستش نفهمیدم مشکل اصلی کجاست
    برای همین نتیجه نهایی رو براتون قرار میدم تا اگر اشکالی نداره نگاهی بهش بندازید، شاید متوجه بشید مشکل از کجاست
    پیشاپیش از کمکتون ممنونم
    [لینک فقط برای اعضای ثبت نام شده قابل مشاهده می باشد ]

  9. #8
    کاربر فعال

    تاریخ عضویت
    20-07-2010
    نوشته ها
    2,708
    سایر رشته ها
    امتياز طلايي
    12
    سپاس
    0
    52 سپاس در 21 پست
    امتياز:22385Array


    پیش فرض

    نقل قول نوشته اصلی توسط danny نمایش پست ها
    با سلام خدمت شما و با تشکر از آموزش بسیار مفیدتون
    راستش به مشکلی که برای من پیش اومد این بود که
    بعد از تماشای فیلم و موقع بستن پلیر با صفحه آبی مواجه شدم
    از اونجا که سیستمم رو تازه تهیه کردم ، میخوام مطمئن بشم که از نظر سخت افزاری مشکلی نداشته باشه
    مخصوصا هارد سیستم (برای همین تصمیم گرفتم هر طور شده بفهمم دلیل این صفحه آبی چی بوده)
    با جستجو به پست شما رسیدم و قدم به قدم کارهایی رو که گفتید انجام دادم
    اما راستش نفهمیدم مشکل اصلی کجاست
    برای همین نتیجه نهایی رو براتون قرار میدم تا اگر اشکالی نداره نگاهی بهش بندازید، شاید متوجه بشید مشکل از کجاست
    پیشاپیش از کمکتون ممنونم
    [لینک فقط برای اعضای ثبت نام شده قابل مشاهده می باشد ]
    سلام
    خطایی که برات رخ داده مربوط میشه به سیستم فایل NTFS.sys که یکی از Device Driver های مخصوص هارد دیسک هست.
    دلایل این خطا ، کاملا متنوع هست و بخاطر مسائلی از قبیل خطا در ساختار سیستم فایل NTFS ، اشکال در سکتور های هارد دیسک و یا خطا و مشکل در ساختار سیستم های ذخیره سازی مثل کابل های هارد باشه.
    ولی یکی از عمده ترین دلایلی که ممکنه برای این خطا بوجود بیاد ، بحث کم شدن مقدار Nonpaged Memory در RAM هست.
    در واقع در این بخش از رم ، اطلاعات مربوط به Device Driver ها قرار میگیرن و همیشه برای اینکه در سطوح مختلف با سرعت بالا در دسترس باشن ، هیچ وقت به بخش های با سرعت کمتر مثل هارد ، page نمیشن . وقتی مقدار این قسمت ینی Nonpaged از مقدار خاصی کمتر بشه ، خطاهای اینچنینی ممکنه رخ بده.
    فایلی که گذاشتی رو وقتی بررسی کردم متوجه شدم زمان بروز این خطا ، نرم افزار KMPlayer اجرا شده بوده پس احتمال اینکه ، این نرم افزار باعث خطا در قسمتی از Nonpaged Memory شده باشه بالاست . بهتره این نرم افزار رو پاک کنی ، سیستم رو ریستارت کنی و نسخه ی جدید تر و مطمئن تر این نرم افزار رو نصب کنی تا ببینی مشکلت حل میشه یا نه.
    ....

  10. #9
    کاربر فعال

    تاریخ عضویت
    20-07-2010
    نوشته ها
    2,708
    سایر رشته ها
    امتياز طلايي
    12
    سپاس
    0
    52 سپاس در 21 پست
    امتياز:22385Array


    پیش فرض

    نقل قول نوشته اصلی توسط emad_2010 نمایش پست ها
    Page_fault_in_nonpaged_area واسه این خطا چیکار کنیم؟
    عزیز جان ، من همینطوری از شکم سیری نیومدم این همه مطلب در مورد این خطا ها بنویسم.
    اینارو نوشتم که میزان این سوالات کلی و بدون detail رو به حداقل برسونم و کاربرا در مورد این خطاها خودشون تحقیق کنن .
    ....

  11. #10
    کاربر تازه وارد

    تاریخ عضویت
    24-11-2011
    نوشته ها
    4
    مهندسی کامپیوتر
    سپاس
    0
    0 سپاس در 0 پست
    امتياز:17Array

    پیش فرض

    نقل قول نوشته اصلی توسط hossein.t نمایش پست ها
    سلام
    خطایی که برات رخ داده مربوط میشه به سیستم فایل ntfs.sys که یکی از device driver های مخصوص هارد دیسک هست.
    دلایل این خطا ، کاملا متنوع هست و بخاطر مسائلی از قبیل خطا در ساختار سیستم فایل ntfs ، اشکال در سکتور های هارد دیسک و یا خطا و مشکل در ساختار سیستم های ذخیره سازی مثل کابل های هارد باشه.
    ولی یکی از عمده ترین دلایلی که ممکنه برای این خطا بوجود بیاد ، بحث کم شدن مقدار nonpaged memory در ram هست.
    در واقع در این بخش از رم ، اطلاعات مربوط به device driver ها قرار میگیرن و همیشه برای اینکه در سطوح مختلف با سرعت بالا در دسترس باشن ، هیچ وقت به بخش های با سرعت کمتر مثل هارد ، page نمیشن . وقتی مقدار این قسمت ینی nonpaged از مقدار خاصی کمتر بشه ، خطاهای اینچنینی ممکنه رخ بده.
    فایلی که گذاشتی رو وقتی بررسی کردم متوجه شدم زمان بروز این خطا ، نرم افزار kmplayer اجرا شده بوده پس احتمال اینکه ، این نرم افزار باعث خطا در قسمتی از nonpaged memory شده باشه بالاست . بهتره این نرم افزار رو پاک کنی ، سیستم رو ریستارت کنی و نسخه ی جدید تر و مطمئن تر این نرم افزار رو نصب کنی تا ببینی مشکلت حل میشه یا نه.
    بینهایت از توجه و پاسختون ممنونم
    حتما نسخه جدید km رو نصب میکنم و امیدوارم دیگه به مشکل نخورم
    و اما در یک مورد می خوام نظرتون رو بدونم
    به نظرت چقدر امکان داره که مشکل از هارد باشه(بر اساس تجربه ای که دارید میپرسم)
    و بهترین راه برای اینکه به طور کامل از سلامت هاردم مطمدن بشم چیه(برنامه ای ، تستی ، چیزی که 100% بشه بهش اطمانان کرد)
    تنها چیزی که نگرانم میکنه هارده ، اونم تو این بازار آشفته سخت افزار که توان خرید هارد نو رو هم ندارم
    از اینکه بخاطر نگرانی خودم وقت با ارزشتون رو میگیرم ، عذر میخوام

صفحه 1 از 6 12345 ... آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پرسش: simul8 رو نمی تونم رو ویندوز 7-64 bit نصب کنم. کسی راه حلی داره ؟
    توسط bakharzy در انجمن مدل سازی و شبیه سازی، تجزیه و تحلیل سیستم
    پاسخ ها: 1
    آخرين نوشته: 07-10-2011, 00:41
  2. موفقیت درسی ویک روز
    توسط spow در انجمن مشاوره و روانشناسی
    پاسخ ها: 1
    آخرين نوشته: 25-07-2011, 19:30
  3. موفقیت درسی ویک روز
    توسط spow در انجمن گنجینه زندگی
    پاسخ ها: 0
    آخرين نوشته: 16-12-2010, 17:23
  4. موفقیت درسی ویک روز
    توسط spow در انجمن مقالات مدیریت
    پاسخ ها: 0
    آخرين نوشته: 16-12-2010, 17:21
  5. دانلود تقویم شمسی برای ویندوز 7 بصورت Gadget | لینک خراب
    توسط Ali.Akbar در انجمن سایر نرم افزارها
    پاسخ ها: 0
    آخرين نوشته: 16-07-2010, 12:20

Bookmarks

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
صفحه اصلی سایت|تالار گفتگوی نواندیشان|فنی و مهندسی|علوم انسانی و علوم پایه|فرهنگ و هنر|مراکز علمی|آپلودسنتر|فروشگاه نواندیشان