錯誤檢查0x19:BAD_POOL_HEADER
BAD_POOL_HEADER錯誤檢查的 值為 0x00000019。 這表示集區標頭已損毀。
重要
本文適用于程式設計人員。 如果您是在使用電腦時收到藍色螢幕錯誤碼的客戶,請參閱 針對藍色畫面錯誤進行疑難排解。
BAD_POOL_HEADER參數
參數 1 表示違規的類型。 其他參數的意義取決於參數 1 的值。
參數 1 | 參數 2 | 參數 3 | 參數 4 | 錯誤的原因 |
---|---|---|---|---|
0x2 |
正在檢查的集區專案 |
集區區塊的大小 |
0 |
特殊集區模式檢查失敗。 (擁有者可能損毀集區區塊。) |
0x3 |
正在檢查的集區專案 |
可讀寫的 Flink freelist 值 |
可讀寫的 閃爍 freelist 值 |
集區免費清單已損毀。 (在狀況良好的清單中,參數 2、3 和 4 的值應該相同。) |
0x5 |
其中一個集區專案 |
保留 |
其他集區專案 |
一對相鄰集區專案具有彼此衝突的標頭。 其中至少有一個已損毀。 |
0x6 |
一個不正確地計算的專案 |
保留 |
造成錯誤計算的錯誤專案 |
集區區塊標頭先前的大小太大。 |
0x7 |
0 |
保留 |
不正確的集區專案 |
集區區塊標頭大小已損毀。 |
0x8 |
0 |
保留 |
不正確的集區專案 |
集區區塊標頭大小為零。 |
0x9 |
一個不正確地計算的專案 |
保留 |
造成錯誤計算的錯誤專案 |
集區區塊標頭大小已損毀, (太大) 。 |
0xA |
應該已找到的集區專案 |
保留 |
應該包含集區專案的頁面虛擬位址 |
集區區塊標頭大小已損毀。 |
0xD、0xE、0xF、0x23、0x24 0x25 |
保留 |
保留 |
保留 |
釋出區塊的集區標頭在釋放之後已經過修改。 這通常不是已釋放區塊先前擁有者的錯誤;相反地,它通常是 (,但不一定) ,因為釋放區塊之前已釋出區塊正在滿溢。 |
0x20 |
應該已找到的集區專案 |
下一個集區專案 |
保留 |
集區區塊標頭大小已損毀。 |
0X21 |
正在釋放的集區指標 |
配置給集區區塊的位元組數目 |
在集區區塊之後找到的損毀值 |
集區區塊後面的資料已損毀。 這通常表示取用者 (呼叫堆疊) 已覆寫區塊。 |
0X22 |
正在釋放的位址 |
保留 |
保留 |
正在釋放的位址沒有追蹤專案。 這通常是因為呼叫堆疊嘗試釋放已釋放的指標,或從未配置為開頭的指標。 |
原因
集區在目前要求時已經損毀。
這可能是或可能不是因為呼叫端所造成。
解決方案
必須使用核心偵錯工具來逐步解說內部集區連結,才能找出問題的可能原因。
然後,您可以將特殊集區用於可疑集區標籤,或使用可疑驅動程式上的驅動程式驗證器 [特殊集區] 選項。 !analyze延伸模組可能有助於找出可疑的驅動程式,但這通常不是集區損毀的情況。
使用 藍色螢幕資料 中所述的步驟來收集停止程式碼參數。 使用停止程式碼參數來判斷您要追蹤的特定程式程式碼為類型。
驅動程式驗證器
驅動程式驗證器是即時執行以檢查驅動程式行為的工具。 如果在驅動程式程式碼執行中看到錯誤,它會主動建立例外狀況,以允許進一步檢查該部分的驅動程式程式碼。 驅動程式驗證器管理員內建于 Windows 中,可在所有 Windows 電腦上使用。 若要啟動驅動程式驗證器管理員,請在命令提示字元中輸入 驗證程式 。 您可以設定您想要驗證的驅動程式。 驗證驅動程式的程式碼會在執行時增加額外負荷,因此請嘗試並盡可能驗證最少的驅動程式數目。 如需詳細資訊,請參閱 驅動程式驗證器。
Windows 記憶體診斷
如果這個錯誤檢查不一致,可能會與錯誤的實體記憶體相關。
執行 Windows 記憶體診斷工具,以測試記憶體。 在 [控制台] 搜尋方塊中,輸入 [記憶體],然後選取 [ 診斷電腦的記憶體問題]。執行測試之後,請使用事件檢視器來檢視系統記錄下的結果。 尋找 MemoryDiagnostics-Results 專案以檢視結果。