啟用特殊池解讀 0x000000c5 藍屏
百度一下0x000000c5,可得到的結(jié)果有 26600 條。但是在絕大多數(shù)的結(jié)果內(nèi),沒有人給出了對癥下藥的合理方案。在我看來,藍屏發(fā)生后,如若想要徹底解決,就不應(yīng)該去"嘗試"各種解決方案,而是使用 WinDbg 一類的利器,直接找到罪魁禍?zhǔn)住?/p>
首先,我們來認識一下,什么是常見的 0x000000c5 崩潰。
值為 0x000000c5的 bug check 其實是 DRIVER_CORRUPTED_EXPOOL。什么意思呢?說明系統(tǒng)嘗試以過高的進程 IRQL 級別去訪問無效內(nèi)存。在藍屏信息中,0x000000c5 后面的括號內(nèi)還應(yīng)跟有四個參數(shù),其中第一個表明引用的內(nèi)存地址,第二個參數(shù)表示引用時的 IRQL 級別,第三個參數(shù)要么是0要么是1,0表示讀取,1表示寫入,最后一個參數(shù)表示引用該內(nèi)存的一個地址。
那么,一般有哪些原因引起了該錯誤呢?
引起該問題的一般原因為,一定有一個驅(qū)動程序損壞了系統(tǒng)的內(nèi)存池。如果驅(qū)動損壞的是小于一個頁面大小的分配單元,那么就會引發(fā) 0x000000c5 錯誤;倘若驅(qū)動損壞的是很大的區(qū)域,那么就會引發(fā) DRIVER_CORRUPTED_MMPOOL 錯誤,值為 0x000000D0。

我的建議是,一定要啟用特殊池!如果不啟用特殊池,我們是無法得到真正的罪魁禍?zhǔn)椎?。而且,對于這個錯誤的直系、嫡系錯誤,我都推薦使用特殊池。我手頭上暫時沒有保存下來的 0x000000c5 內(nèi)存轉(zhuǎn)儲,但是有一個 0x100000C5 DRIVER_CORRUPTED_EXPOOL。下面我展示一下堆棧結(jié)果:pycharm激活碼
從圖中我們可以看見,0x7c90e514并沒有得到正確的解析,而且我可以告訴大家,它的地址也不是真實值,而是 WinDbg 根據(jù)內(nèi)存上下文猜解的。此例中,我們就算使用dds adb6ad48命令,再配合dds命令,也只能找到一個微軟公司的win32k.sys文件,這顯然不是罪魁禍?zhǔn)?。為了讓我們能夠定位出這個殺手驅(qū)動,我們不得不使用特殊池。