日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

啟用特殊池解讀 0x000000c5 藍(lán)屏

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

啟用特殊池解讀 0x000000c5 藍(lán)屏


從圖中我們可以看見 , 0x7c90e514并沒有得到正確的解析 , 而且我可以告訴大家 , 它的地址也不是真實(shí)值 , 而是 WinDbg 根據(jù)內(nèi)存上下文猜解的 。此例中 , 我們就算使用dds adb6ad48命令 , 再配合dds命令 , 也只能找到一個(gè)微軟公司的win32k.sys文件 , 這顯然不是罪魁禍?zhǔn)?。為了讓我們能夠定位出這個(gè)殺手驅(qū)動(dòng) , 我們不得不使用特殊池 。
什么是特殊池?原理是什么?
特殊池就是特殊內(nèi)存池 , 一旦啟用 , 就好像系統(tǒng)部署了7x24小時(shí)監(jiān)控 , 盯著可能是罪魁禍?zhǔn)椎尿?qū)動(dòng) 。關(guān)于原理 , 我簡單解釋一下 , 就是通過啟用特殊內(nèi)存池 , 被檢驗(yàn)的所有驅(qū)動(dòng)程序?qū)τ诼孕∮谝粋€(gè)頁面大小的緩沖區(qū)申請都將使用特殊內(nèi)存池 , 不而是使用一般情形下的換頁或非換頁內(nèi)存池 。從特殊內(nèi)存池中分配的緩沖區(qū)被夾在兩個(gè)無效頁面之間 。因此 , 對于小于一個(gè)頁面大小的緩沖區(qū)的溢出 , 系統(tǒng)在溢出發(fā)生時(shí)就會檢測到 , 因?yàn)樗鼘?dǎo)致了在緩沖區(qū)之后的無效頁面發(fā)生了頁面錯(cuò)誤 , 也就是pagefault 。那么 , 再次崩潰時(shí) , 得到的錯(cuò)誤應(yīng)該是 DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION(0x000000d6) , 這樣就將不可調(diào)試的轉(zhuǎn)為可調(diào)試的轉(zhuǎn)儲文件了 , 而且運(yùn)氣好的話能夠看見Windbg直接指出引起崩潰的驅(qū)動(dòng) 。
怎樣啟用特殊池?
1、運(yùn)行"verifier.exe" , 您會看見"驅(qū)動(dòng)程序驗(yàn)證程序管理器"向?qū)?
2、選擇第二項(xiàng)——"創(chuàng)建自定義設(shè)置(供程序開發(fā)人員使用)" , 然后點(diǎn)擊"下一步";
3、選擇第二項(xiàng)——"從一個(gè)完整的列表選擇單個(gè)設(shè)置" , 并點(diǎn)擊"下一步";
4、僅選中第一項(xiàng)——"特殊池"前面的復(fù)選框 , 進(jìn)入下一步;
5、選擇第三項(xiàng)——"自動(dòng)選擇這臺計(jì)算機(jī)上安裝的所有驅(qū)動(dòng)程序" , 點(diǎn)擊"完成";
6、重新啟動(dòng)系統(tǒng) 。
在重啟系統(tǒng)之后 , 特殊池就生效了 , 接下來您要做的就是等待系統(tǒng)再次崩潰出現(xiàn)藍(lán)屏 。通過藍(lán)屏之后重新生成的內(nèi)存轉(zhuǎn)儲文件就因該可以查到真兇了 。
【啟用特殊池解讀 0x000000c5 藍(lán)屏】以上用到的verifier.exe在系統(tǒng)中有 , 在 Windows Driver Kit 里面也帶有 。如果通過它啟用特殊池也未能查明真兇 , 請使用Debugging Tools for Windows 中的gFlags工具通過 pool tag 啟用特殊池再試 。

推薦閱讀