共用方式為


錯誤檢查0x18:REFERENCE_BY_POINTER

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

重要

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

REFERENCE_BY_POINTER參數

參數 描述

1

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

2

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

3

已保留

4

已保留

原因

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

驅動程式必須比對增加 (reference) 和減少參考計數之例程的呼叫。 這個錯誤檢查是由對象參考計數中的不一致所造成。 一般而言,不一致的原因是驅動程式會減少對象的參考計數太多次,進行額外的呼叫來取值物件。 這個錯誤檢查可能會發生,因為對象的參考計數在物件仍有開啟句柄時,會傳回零。 如果對象的參考計數低於零,不論物件是否有開啟的句柄,也可能會發生此情況。

解決方法

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

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

若要在 物件上尋找句柄和指標計數,請使用 !object 調試程序命令。

kd> !object address

其中 address 是參數 2 中指定之對象的位址。

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

如果您尚未準備好使用 Windows 調試程式來處理此問題,您可以使用一些基本的疑難解答技術。

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

  • 如果在錯誤檢查訊息中識別驅動程式,請停用驅動程式,或向製造商檢查驅動程式更新。

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

  • 如需其他一般疑難解答資訊,請參閱 分析錯誤檢查藍屏幕數據