錯誤檢查0x18:REFERENCE_BY_POINTER

REFERENCE_BY_POINTER錯誤檢查的值為 0x00000018。 這表示物件的參考計數對於物件的目前狀態而言不合法。

重要

本文適用于程式設計人員。 如果您是在使用電腦時收到藍色螢幕錯誤碼的客戶,請參閱 針對藍色畫面錯誤進行疑難排解

REFERENCE_BY_POINTER參數

參數 描述

1

物件的物件類型,其參考計數正在降低。

2

正在降低其參考計數的物件。

3

保留

4

保留

原因

物件的參考計數對於物件的目前狀態而言不合法。 每次驅動程式使用物件的指標時,驅動程式都會呼叫核心常式,以增加物件的參考計數。 當驅動程式使用指標完成時,驅動程式會呼叫另一個核心常式,以將參考計數減少一個。

驅動程式必須比對增加參考) ( 程的呼叫,並在參考計數) 減少 (取值 。 這個錯誤檢查是由物件參考計數中的不一致所造成。 一般而言,不一致的原因是驅動程式會減少物件的參考計數太多次,而發出額外的呼叫來取值物件。 這個錯誤檢查可能會發生,因為物件的參考計數會在物件仍有開啟控制碼時變成零。 物件參考計數低於零時,也可能會發生此情況,不論物件是否有開啟的控制碼。

解決方案

請確定驅動程式符合增加和減少物件參考計數的常式呼叫。 請確定您的驅動程式不會對取值物件的常式進行額外呼叫, (請參閱參數 2) 。

您可以使用偵錯工具來協助分析此問題。 如需詳細資訊,請參閱 使用 Windows 偵錯工具 (WinDbg) 損毀傾印分析 !analyze偵錯延伸模組會顯示錯誤檢查的相關資訊,有助於判斷根本原因。

若要尋找 物件的控制碼和指標計數,請使用 !object 偵錯工具命令。

kd > !object address

其中 address 是參數 2 中所指定物件的位址。

您也可以在導致此停止程式碼的程式碼中設定中斷點,並嘗試單一步驟向前進入錯誤程式碼。

如果您尚未配備使用 Windows 偵錯工具來處理此問題,您可以使用一些基本的疑難排解技術。

  • 檢查系統登入事件檢視器是否有其他錯誤訊息,以協助識別造成此錯誤檢查的裝置或驅動程式。

  • 如果在錯誤檢查訊息中找出某個驅動程式,請停用驅動程式或洽詢製造商是否有驅動程式更新。

  • 確認已安裝的任何新硬體都與已安裝的 Windows 版本相容。 例如,您可以在Windows 10 規格取得必要硬體的相關資訊。

  • 如需其他一般疑難排解資訊,請參閱 藍色螢幕資料