雖然基於NT架構的Windows 2000/XP系統穩定性已經大大增強,甚至Windows XP號稱“從不死機”,但我們仍然會不時看到如圖1所示的藍色警報信息,這就是通常所說的“藍屏”,究竟是怎麼回事呢?
一、Windows 2000/XP爆發藍色警報的原因
Windows 2000/XP采用了分層結構,它的兩個層又稱模式,分別為用戶模式(User Mode)和內核模式(Kernel Mode),應用程序是無法直接訪問硬件設備的,只有借助驅動程序才能直接訪問。
不過,即使NT架構再穩定,由於會由於某些原因,例如硬件沖突、硬件產生問題、注冊表錯誤、虛擬內存不足、動態鏈接庫文件丟失、資源耗盡等,此時可能會導致驅動程序或應用程序出現錯誤,嚴重時甚至會波及內核層。這種情況下,Windows會中止系統運行,並啟動名為KeBugCheck的功能,通過檢查所有中斷的處理進程,並同預設的停止代碼和參數比較後,屏幕將變為藍色,並顯示相應的錯誤信息和故障提示,由於出現這種現象時實際上就意味著死機,因此常稱為“Blue Screen of Death”(BSOD),又稱“STOP信息”或“停止信息”。
二、認識藍色警報中隱藏的信息
Windows 2000/XP的BSOD窗口與Windows NT4以前的BOSD窗口有著很大的區別,最大的區別是NT的BSOD窗口僅包括一個通用的停止消息代碼,但Windows 2000/XP的BSOD包含了停止消息和硬件消息兩種類型,前者是發現一個無法恢復的軟件錯誤時產生的錯誤信息,後者是發現一個嚴重的硬件錯誤時產生的錯誤信息。
雖然圖1窗口中的信息看起來很復雜,但一般均由以下三部分組成:
1.錯誤信息
在“*** Stop:”至“****** wdmaud.sys”之間的這段內容是所謂的錯誤信息,由出錯代碼、自定義參數、錯誤符號等三部分組成,各部分的含義如下:
出錯代碼:STOP後面的16進制數字;
自定義參數:出錯代碼字符的組成,由程序人員定義,一般用戶很難理解;
錯誤符號:KMODE_EXCEPTION_NOT_HANDLED
在錯誤符號後面,這裡還顯示了一個內存位置和文件名,可以了解到發生錯誤時的內存位置和源文件。對我們來說,其實最有用的還是前面的出錯代碼信息,在搜索微軟知識庫時將會用到。
2.推薦操作
這裡顯示了系統推薦用戶采取的操作措施和步驟,例如在安全模式下卸載程序、回滾驅動程序、更新BIOS、安裝補丁等,不過大部分情況下都需要重新啟動系統後才能考慮進一步的操作。
3.調試端口信息
這裡會顯示應該如何設置內核調試器的信息,包括內存轉儲映像是否已寫入磁盤、使用什麼端口來完成這次調試。
其實,根據筆者的經驗,藍色警報中除了出錯代碼比較有用外,對普通用戶來說,其余的大部分信息並無多少實際意義,僅供參考而已。
為調試系統的需要,Windows系統出現BSOP錯誤後,KeBugCheck會自動生成一個名為Memory.dmp的偵錯文件,該文件位於C:WindowsMinidump文件夾下,默認設置下,該文件的大小與系統物理內存容量一致,我們可以將該文件壓縮後發送給微軟的技術支持部門,以獲取相應的解決方案,但該文件的容量是如此巨大,如何發送是一個大問題,因此很少有用戶真正這樣做。
提示:打開“系統屬性→高級→啟動和故障恢復”窗口,在這裡可以看到“寫入調試信息”的生成方式:小內存轉儲、核心內存轉儲、完全內存轉儲、無,基於上面的分析的原因,建議在這裡選擇“無”。
上一頁12下一頁共2頁