REFERENCE_BY_POINTER (stop code 0x00000018) is one of the rarer blue screens, which also makes it one of the more confusing ones. In plain terms: Windows keeps a reference count for certain system objects, and a driver decremented one too many times — a classic driver bug, caught red-handed.
The good news about a specific driver bug is that it’s fixable without hardware surgery. Our REFERENCE_BY_POINTER reference has the technical background; this is the hands-on, step-by-step version. Start at Fix 1. Don’t let the rarity of this stop code worry you — rare just means fewer people have documented it online, not that it’s harder to fix than the common ones.
Why this happens
A buggy third-party driver mishandling object reference counts — the textbook cause.
Antivirus or firewall drivers hooking kernel objects incorrectly.
Outdated storage or network drivers with known reference-count bugs.
Corrupted system files breaking the object manager’s bookkeeping.
Two security products installed at once, both hooking the same objects.
Failing RAM corrupting the reference counts stored in memory.
A corrupted driver installation mixing old and new driver files with different reference-counting behavior, confusing the object manager.
How to fix it
Work through these in order, starting with Fix 1. Most of these crashes are resolved by one of the first three fixes, so don’t skip ahead.
Fix 1: Identify the driver from the crash dump
This stop code is almost always one specific driver. The dump names it — read it before changing anything.
After rebooting, open Event Viewer > Windows Logs > System and find the BugCheck entry for any named .sys file.
For certainty, analyze the minidump with WinDbg — our dump analysis guide walks through
!analyze -v.Write down the driver name; every fix below targets it.
If dumps aren’t being saved, enable minidumps in Settings > System > About > Advanced system settings > Startup and Recovery.
Fix 2: Update or replace the named driver
A driver with a reference-count bug needs replacing, not tweaking. Get the manufacturer’s current version.
Open Device Manager and find the device tied to the named driver.
Right-click, choose Uninstall device, and tick Attempt to remove the driver for this device.
Restart the laptop.
Install the latest driver from the manufacturer’s official site — never from a driver-updater tool.
Fix 3: Remove conflicting security software
Two antivirus products (or antivirus plus a ‘system optimizer’ with a driver) hooking the same kernel objects is a classic trigger for this stop code.
Open Settings > Apps > Installed apps and list every antivirus, firewall, VPN, and ‘PC optimizer’ installed.
Keep one antivirus; uninstall the rest using each vendor’s official removal tool (normal uninstall leaves kernel drivers behind).
Restart and let Windows Security cover the gap during testing.
Reinstall only what you actually need, one at a time, testing stability between each.
Fix 4: Run Driver Verifier on the suspect
If the dump is inconclusive, Driver Verifier can force the buggy driver to crash identifiably — but use it narrowly and carefully.
Press Win + R, type
verifier, and choose Create standard settings.Select Select driver names from a list and tick ONLY your suspect driver.
Restart and use the laptop; Verifier will crash it naming the violator if it’s guilty.
Afterward, boot to Safe Mode and run
verifier /resetto turn it off. Never leave Verifier on permanently.
Fix 5: Repair system files
If the object manager’s own files are corrupted, even good drivers crash against them. Repair the foundation.
Open Terminal (Admin) and run
sfc /scannow.Follow with
DISM /Online /Cleanup-Image /RestoreHealth.Restart and test for a day or two.
Microsoft’s documentation for both tools is on their Windows support pages .
Fix 6: Test the RAM
Corrupted reference counts in faulty memory mimic a driver bug perfectly. When dumps point everywhere, test the hardware.
Press Win + R, type
mdsched.exe, and choose Restart now and check for problems.For a thorough test, boot MemTest86 from USB and run 2+ passes.
Replace any stick with errors.
If RAM is clean and one driver keeps getting named, that driver is definitively the problem — replace it and move on.
Fix 7: Do an in-place upgrade repair
When driver replacements don’t stick and the dumps keep implicating system components, an in-place upgrade reinstalls Windows over itself — rewriting the kernel and object-manager components this stop code is about — while keeping your files and programs.
Download the current Windows 11 ISO from the official Microsoft software download page .
Mount the ISO by double-clicking it and run setup.exe.
Choose Keep personal files and apps when asked.
Let setup complete — 30-90 minutes with several reboots; don’t interrupt it.
Afterward, reinstall the suspect driver fresh from the manufacturer’s site.
Monitor for a week. A clean kernel plus a clean driver ends the stubborn cases.
Closing
REFERENCE_BY_POINTER is Windows catching a driver miscounting its references — annoying, but precise. Read the dump, name the driver, replace the driver; that three-step core fixes nearly every case. The traps to avoid are running two security products at once and trusting driver-updater tools, both of which manufacture exactly this kind of bug. Fix it once, properly, and this is one blue screen you won’t see again. An in-place upgrade is the closest thing to a reinstall without the pain: it rewrites every Windows component while keeping your files and programs. When a driver replacement doesn’t stick and dumps keep pointing at system components, this is the fix that ends it. Rare stop codes feel scarier than common ones, but they’re often easier: fewer possible causes, and the dump usually names the culprit outright. You picked a good one to learn dump analysis on — the same !analyze -v workflow in our dump guide decodes the common stop codes too.
