錯誤檢查0x76:PROCESS_HAS_LOCKED_PAGES
PROCESS_HAS_LOCKED_PAGES錯誤檢查的值為 0x00000076。 這個錯誤檢查指出驅動程式無法在 I/O 作業之後釋放鎖定的頁面,或嘗試解除鎖定的頁面。
重要
本文適用于程式設計人員。 如果您是在使用電腦時收到藍色螢幕錯誤碼的客戶,請參閱 針對藍色畫面錯誤進行疑難排解。
PROCESS_HAS_LOCKED_PAGES參數
參數 1 | 參數 2 | 參數 3 | 參數 4 | 錯誤原因 |
---|---|---|---|---|
0x00 |
進程物件的指標 |
鎖定的頁面數目 |
驅動程式堆疊的指標會在啟用) 時 (。 否則,此參數為零。 |
正在終止的進程已鎖定記憶體頁面。 在進程終止之前,驅動程式必須解除鎖定進程內可能鎖定的任何記憶體。 |
0x01 |
驅動程式指定的 MDL |
該程式中目前鎖定的記憶體分頁數目 |
如果驅動程式堆疊已啟用) ,則為該程式堆疊的指標 (。 否則,此參數為零。 |
驅動程式嘗試解除鎖定未鎖定的進程記憶體頁面。 |
原因
驅動程式無法將鎖定的頁面解除鎖定 (參數 1 值0x0) ,或驅動程式嘗試解除鎖定尚未鎖定或已解除鎖定的頁面, (參數 1 值0x1) 。
解決方案
!analyze偵錯延伸模組會顯示錯誤檢查的相關資訊,有助於判斷根本原因。
如果參數 1 值為 0x0
首先,在所有實體記憶體中,在目前進程指標上使用 !search 延伸模組。 此延伸模組可能會找到至少一個指向目前進程的 MDL) 記憶體描述元清單 (。 接下來,請在您找到的每個 MDL 上使用 !search ,以取得指向目前進程的 I/O 要求封包 (IRP) 。 從此 IRP 中,您可以識別哪些驅動程式正在流失頁面。
否則,您可以編輯登錄來偵測哪些驅動程式造成錯誤:
在 \\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management 登錄機碼中,建立或編輯 TrackLockedPages 值,然後將它設定為 DWORD 1。
重新啟動電腦。
系統接著會儲存堆疊追蹤,因此您可以輕鬆地識別造成問題的驅動程式。 如果驅動程式再次造成相同的錯誤,則會發出 錯誤檢查0xCB (DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS) ,而造成此錯誤的驅動程式名稱會顯示在藍色畫面上,並儲存在 位於 KiBugCheckDriver位置 (PUNICODE_STRING) 的記憶體中。
如果參數 1 值為 0x1
檢查鎖定和解除鎖定記憶體的驅動程式原始程式碼,並嘗試找出未先鎖定記憶體的實例。