“没有什么是完美的”这句格言对于软件开发来说当然是正确的,在软件开发中,错误可以并且将会破坏用户体验。不幸的是,如果您的 PC因蓝屏死机 (BSOD) 错误而(Blue Screen of Death (BSOD) error)崩溃,则表示正在发生严重的 PC 故障,并且通常(尽管并非总是)由某些代码中的错误引起。
出现的最不寻常的BSOD错误之一是“指针引用” BSOD (reference_by_pointer)。试图找出导致此蓝屏死机(BSOD)的原因是很棘手的,但它通常会指出您可以轻松解决的问题。因此,如果您尝试解决 reference_by_pointer BSOD错误,本指南应该可以帮助您。
什么导致 Windows 10 中的指针引用 BSOD 错误?(What Causes a Reference By Pointer BSOD Error in Windows 10?)
指针引用BSOD错误(也称为 reference_by_pointer 或 0x00000018 错误)通常表明您的系统文件或设备驱动程序存在问题。
为了帮助确定系统资源的优先级,Windows在内部将正在运行的元素(例如打开的窗口)称为“对象”,其数字标识了元素在别处被引用(或使用)的次数。
此值会减小,直到对象被移除,从而为其他正在运行的服务释放系统内存。
当出现 reference_by_pointer 消息时,Windows看到正在运行的对象的引用计数不正确。由于这可能是一个严重的安全问题,Windows将停止并显示BSOD,强制您的系统重新启动并清除进程中的所有活动内存。
然而,几乎在所有情况下,这通常是由有缺陷的软件引起的。硬件(Hardware)驱动程序是最常见的原因,显卡和网络设备等其他组件通常会导致该消息。但是,它也可能是由其他问题引起的,例如系统文件损坏甚至硬件故障。
在您尝试其他任何操作之前,您应该检查您的 BSOD 内存转储文件(check your BSOD memory dump files)以获取更多信息。您会发现指针BSOD(BSOD)引用的原因背后的重要线索,例如驱动程序文件(具有 .sys 文件扩展名)或系统进程(例如ntosknrl.exe)。
找到可能的原因(例如驱动程序故障)后,您可以按照以下步骤解决问题。
切换到安全模式进行故障排除(Switch to Safe Mode for Troubleshooting)
在BSOD之后,您的 PC 将被迫重新启动。如果卡在 reference_by_pointer BSOD循环中(每次重新启动都会导致另一个BSOD消息),您需要启动到安全模式(boot into Safe Mode)才能开始故障排除过程。
安全模式(Mode)运行具有正常运行所需的最基本的驱动程序和系统进程集的Windows ,使您能够排除驱动程序问题而不会冒另一个(Windows)BSOD的风险。
在开始任何其他尝试解决问题之前,您还可以使用安全模式(Mode)分析您的BSOD转储文件。(BSOD)
- 要启动到安全模式(Mode),您需要中断Windows启动序列至少 3 次。为此,请打开您的 PC 并等待Windows徽标出现。按 PC 的重置按钮(或按住 PC 的电源按钮)强制重启,然后至少再重复两次。
- Windows 将启动到自动修复(Automatic Repair)模式,以尝试在三次尝试启动失败后解决启动循环。(resolve a boot loop)到达自动修复( Automatic Repair )菜单后,选择Advanced Options > Troubleshoot > Advanced options > Startup Settings > Restart 以访问您的启动选项。
- 片刻之后(并快速重启),使用键盘数字键选择您喜欢的安全模式(Mode)启动选项。例如,选择4表示标准安全模式,选择 5(, 5)表示启用网络功能的安全模式,或选择(Safe Mode)6表示仅显示命令提示符终端(command prompt terminal)的安全模式。
Windows 将使用您选择的安全模式(Safe Mode)选项继续启动,然后您可以继续执行下面概述的故障排除步骤。
更新系统文件和设备驱动程序(Update System Files and Device Drivers)
Windows或设备驱动程序中的错误可能导致 reference_by_pointer BSOD。要解决此问题,您需要使用Windows Update系统确保您的系统文件和驱动程序是最新的。
- 首先,右键单击开始(Start)菜单并选择设置(Settings)以打开 Windows 设置。
- 在“设置”菜单中,选择“更新和安全”(Update & Security ) > “ Windows 更新”(Windows Update)。Windows 应自动检查更新,但如果没有,请选择Check for Updates。如果有任何更新可供您手动安装,请选择安装更新。(Install Updates)
- 留出时间让Windows为您的系统下载和安装新更新。完成后,重新启动您的 PC 以加载新的更新和驱动程序并完成该过程。您可以通过右键单击开始(Start)菜单并选择关闭或注销(Shut down or sign out )>重新启动(Restart)来快速执行此操作。
回滚最近安装的驱动程序或系统更新(Roll Back a Recently Installed Driver or System Update)
虽然系统更新经过了严格的测试过程,但仍然可能出现错误和问题。
如果您在最近更新系统文件或设备驱动程序后只看到 reference_by_pointer BSOD错误,则您可能引入了一组错误的文件。值得庆幸的是,Windows允许您回滚 Windows 上的驱动程序(roll back a driver on Windows)并卸载任何(uninstall any recent Windows updates)导致问题的最新 Windows 更新。
如何回滚设备驱动程序(How to Roll Back a Device Driver)
- 要回滚最近安装的设备驱动程序,请右键单击开始(Start)菜单并选择设备管理器(Device Manager)。
- 在“设备管理器(Device Manager )”窗口中,找到具有最近更新的驱动程序的设备。右键单击(Right-click)设备并选择Properties。
- 在“属性(Properties)”窗口的“驱动程序(Driver)”选项卡中,选择“回滚驱动程序”(Roll Back Driver )选项。这将删除最近安装的驱动程序并恢复以前使用的版本。选择回滚驱动程序(Roll Back Driver)后,按照屏幕上的任何其他说明完成该过程。
- 回滚驱动程序后,通过右键单击“开始(Start)”菜单并选择“关机或注销(Shut down or sign out )>重新启动(Restart)”重新启动 PC 以完成该过程。
如何删除系统更新(How to Remove a System Update)
- 要卸载最近的系统更新,请右键单击开始(Start)菜单并选择设置(Settings)。
- 在设置(Settings )菜单中,选择更新和安全(Update & Security )>查看更新历史记录(View update history )>卸载更新(Uninstall updates)。
- 将出现一个旧式控制面板(Control Panel)菜单。要按日期对更新进行排序,请选择Installed On类别标题对其进行排序。找到您要删除的更新,然后选择卸载(Uninstall)将其删除。如果卸载(Uninstall)选项不可用,则系统更新被认为是必不可少的并且无法删除。
- 按照(Follow)屏幕上的任何其他说明删除更新。卸载后,右键单击“开始(Start)”菜单并选择“关机或注销(Shut down or sign out )” > “重新启动(Restart)”,重新启动您的 PC 。
检查您的系统文件是否有错误(Check Your System Files for Errors)
Windows文件不断变化,设置和文件会定期更新。不幸的是,您的Windows安装将不时面临更多的灾难性变化,从恶意软件感染(malware infections)到硬盘驱动器扇区故障。
如果您认为您的Windows安装以某种方式失败并导致此BSOD错误,您可以使用(BSOD)SFC和DISM工具检查错误。
- 要运行这些工具,您需要打开一个新的Windows PowerShell窗口。右键单击(Right-click)开始(Start)菜单并选择Windows PowerShell (Admin)来执行此操作。
- 在 PowerShell 窗口中,键入dism.exe /online /cleanup-image /restorehealth并在键盘上选择Enter 。这将检查您的Windows系统映像(用于重置安装文件)是否存在完整性问题。如果文件丢失或损坏,DISM将替换它们。
- DISM工具完成后,键入sfc sfc /scannow以使用系统文件检查器(System File Checker)工具扫描Windows安装是否存在错误。如果检测到它们,它将尝试使用新的 DISM 生成的系统映像文件替换它们,以确保您的安装正常工作。
一旦SFC工具完成对Windows安装文件的扫描,请重新启动您的 PC。如果它无法更新或修复您的文件,您可能需要查看更激进的选项,例如使用全新安装重置 Windows 10 。(resetting Windows 10)
测试您的硬件(并根据需要更换)(Test Your Hardware (and Replace If Required))
损坏(Corrupt)或错误的文件不仅会导致系统不稳定。例如,如果您的硬件过热、过度工作或只是出现故障,则系统错误(如指针BSOD引用)是 PC 完全故障之前的下一步。
如果热量是一个问题,你需要清理你的电脑(clean out your PC)并考虑升级你的冷却系统来帮助解决这个问题。您的下一步是彻底测试您的硬件,使用CPU 压力测试(CPU stress tests)和内存测试工具(memory testing tools),以及检查您的硬盘驱动器是否有错误(checking your hard drive for errors)。
如果您的硬件有问题,您唯一的答案就是更换它。您可以更换单个组件(例如您的主板或CPU ),但如果 PC 太旧而无法修复,您可能需要考虑完全升级,将您的 PC 完全更换为全新的预构建 PC 或构建您的新 PC(building your new PC) .
从 Windows 上的 BSOD 错误中恢复(Recovering from BSOD Errors on Windows)
指针引用BSOD错误通常不用担心,但如果没有定期的系统维护,它可能表明您的 PC 存在严重问题。确保(Make)将您的重要文件备份到其他地方(keep your important files backed up elsewhere),这样当您的 PC 崩溃时您就不会丢失您的文件,并确保您启用了系统还原(have system restore enabled)。
如果您无法使用上述步骤解决问题,您可能需要考虑更激进的选择。如果您的硬件出现故障,您将需要考虑升级您的 PC(consider upgrading your PC)或完全更换它。否则,可能是时候擦除和重置 Windows(wipe and reset Windows)以恢复稳定性了,尽管之后您需要从备份中恢复文件。(restore your files)
How to Fix a Reference By Pointer BSOD on Windows
Τhe adage that “nothing is perfect” is certainly true for software development, where bugs can and will derail the υser experience. Unfortunately, if your PC crashes with a Blue Screen of Death (BSOD) error, a serious PC fault is occurring, and it’s usually (although not always) caused by bugs in some code.
One of the most unusual BSOD errors to appear is the “reference by pointer” BSOD (reference_by_pointer). Trying to track down the cause of this BSOD is tricky, but it usually points to problems that you can easily fix. So, if you’re trying to troubleshoot a reference_by_pointer BSOD error, this guide should help you.
What Causes a Reference By Pointer BSOD Error in Windows 10?
A reference by pointer BSOD error (also known as a reference_by_pointer or 0x00000018 error) usually points to an issue with your system files or device drivers.
To help prioritize system resources, Windows internally refers to running elements (such as an open window) as “objects” with numbers that identify how many times the elements are referenced (or used) elsewhere.
This value decreases until the object is removed, freeing up your system memory for other running services.
When a reference_by_pointer message appears, Windows is seeing an incorrect reference count for a running object. As this could be a serious security issue, Windows will stop and display a BSOD, forcing your system to restart and clearing all active memory in the process.
In almost every case, however, this is usually caused by a buggy piece of software. Hardware drivers are the most common cause, with graphics cards and other components like network devices often causing the message. However, it can also be caused by other issues, such as corrupt system files or even failing hardware.
Before you try anything else, you should check your BSOD memory dump files for more information. You will find vital clues behind the cause of a reference by pointer BSOD, such as a driver file (with a .sys file extension) or a system process (such as ntosknrl.exe).
Once you’ve located a possible cause (such as a malfunctioning driver), you can follow the steps below to resolve the issue.
Switch to Safe Mode for Troubleshooting
Following a BSOD, your PC is forced to reboot. If stuck in a reference_by_pointer BSOD loop (with each reboot causing another BSOD message), you’ll need to boot into Safe Mode to begin the troubleshooting process.
Safe Mode runs Windows with the most basic set of drivers and system processes required to function properly, allowing you to troubleshoot driver issues without risking another BSOD.
You can also use Safe Mode to analyze your BSOD dump files before you begin any other attempts to fix the problem.
- To boot into Safe Mode, you’ll need to interrupt the Windows boot-up sequence at least three times. To do this, power up your PC and wait until the Windows logo appears. Press your PC’s reset button (or press and hold your PC’s power button) to force a reboot, then repeat this at least two more times.
- Windows will boot into Automatic Repair mode to try and resolve a boot loop after three failed attempts to boot up. Once you reach the Automatic Repair menu, select Advanced Options > Troubleshoot > Advanced options > Startup Settings > Restart to access your boot-up options.
- After a few moments (and a quick reboot), select your preferred Safe Mode boot-up option using your keyboard number keys. For example, select 4 for standard Safe Mode, 5 for Safe Mode with networking features enabled, or 6 for Safe Mode with only a command prompt terminal visible.
Windows will proceed to boot up using your chosen Safe Mode option, where you can then continue with the troubleshooting steps outlined below.
Update System Files and Device Drivers
A bug in Windows or a device driver can cause a reference_by_pointer BSOD. To overcome this issue, you’ll need to make sure your system files and drivers are up-to-date using the Windows Update system.
- To begin, right-click the Start menu and select Settings to open Windows Settings.
- In the Settings menu, select Update & Security > Windows Update. Windows should check for updates automatically but, if it doesn’t, select Check for Updates. Select Install Updates if any updates are available for you to install manually.
- Allow time for Windows to download and install the new updates for your system. Once this is complete, restart your PC to load the new updates and drivers and complete the process. You can quickly do this by right-clicking the Start menu and selecting Shut down or sign out > Restart.
Roll Back a Recently Installed Driver or System Update
While system updates undergo a rigorous testing process, bugs and issues can still occur.
If you only see a reference_by_pointer BSOD error after you’ve recently updated your system files or device drivers, you may have introduced a bugged set of files. Thankfully, Windows allows you to roll back a driver on Windows and uninstall any recent Windows updates that are causing issues.
How to Roll Back a Device Driver
- To roll back a recently installed device driver, right-click the Start menu and select Device Manager.
- In the Device Manager window, locate the device with the recently updated drivers. Right-click the device and select Properties.
- In the Driver tab of the Properties window, select the Roll Back Driver option. This will remove the recently installed driver and restore the previously used version. After selecting Roll Back Driver, follow any additional on-screen instructions to complete the process.
- Once you’ve rolled back your driver, restart your PC to complete the process by right-clicking the Start menu and selecting Shut down or sign out > Restart.
How to Remove a System Update
- To uninstall a recent system update, right-click the Start menu and select Settings.
- In the Settings menu, select Update & Security > View update history > Uninstall updates.
- An old-style Control Panel menu will appear. To sort updates by date, select the Installed On category title to sort them. Locate the update you wish to remove, then select Uninstall to remove it. If the Uninstall option isn’t available, the system update is considered essential and can’t be removed.
- Follow any additional on-screen instructions to remove the update. Once it’s uninstalled, restart your PC by right-clicking the Start menu and selecting Shut down or sign out > Restart.
Check Your System Files for Errors
Windows files are constantly changing, with settings and files updated regularly. Unfortunately, your Windows installation will face more catastrophic changes from time to time, from malware infections to hard drive sector failures.
If you think that your Windows installation is failing somehow and causing this BSOD error, you can check it for errors using the SFC and DISM tools.
- To run these tools, you’ll need to open a new Windows PowerShell window. Right-click the Start menu and select Windows PowerShell (Admin) to do this.
- In the PowerShell window, type dism.exe /online /cleanup-image /restorehealth and select Enter on your keyboard. This will check your Windows system image (used to reset your installation files) for integrity issues. If there are missing or corrupted files, DISM will replace them.
- Once the DISM tool is complete, type sfc /scannow to use the System File Checker tool to scan your Windows installation for errors. If it detects them, it will attempt to replace them using the fresh DISM-generated system image files, ensuring your installation is working properly.
Restart your PC once the SFC tool finishes a scan of your Windows installation files. If it can’t update or repair your files, you may need to look at more drastic options, such as resetting Windows 10 with a fresh installation.
Test Your Hardware (and Replace If Required)
Corrupt or buggy files don’t only cause system instability. For example, if your hardware is overheating, overworked, or just plain failing, system errors like a reference by pointer BSOD are the next step before a full PC failure.
If heat is an issue, you’ll need to clean out your PC and consider upgrading your cooling to help resolve the issue. Your next step is to test your hardware thoroughly, using CPU stress tests and memory testing tools, as well as checking your hard drive for errors.
If your hardware is the problem, your only answer is to replace it. You can replace individual components (such as your motherboard or CPU), but if the PC is too old to repair, you may need to consider a complete upgrade, replacing your PC entirely with a fresh pre-built PC or building your new PC instead.
Recovering from BSOD Errors on Windows
A reference by pointer BSOD error isn’t usually something to worry about, but without regular system maintenance in place, it could point to a serious problem with your PC. Make sure to keep your important files backed up elsewhere so you don’t lose your files when your PC crashes and ensure you have system restore enabled.
If you can’t fix the problem using the steps above, you might need to consider more drastic options. If your hardware is faulty, you’ll need to consider upgrading your PC or replacing it entirely. Otherwise, it might be time to wipe and reset Windows to restore stability, although you’ll need to restore your files from a backup afterwards.