Skip to content
0x00000018REFERENCE_BY_POINTERStop codeWidely reported

REFERENCE_BY_POINTER (0x18): what it means and how to fix it

Updated Oct 12, 2026 · Checked against Microsoft documentation · How this page is made

Quick answer

REFERENCE_BY_POINTER (0x00000018) is a blue screen crash that occurs when a driver lowers an object's reference count to an illegal value. The most common cause is a software driver making extra dereference calls or incompatibility with recently added hardware. Start by checking the System Log in Event Viewer to identify the failing driver or device.

What it means

Windows tracks every active system object, such as a file or device, by counting how many parts of the operating system are actively using it. Each time a driver interacts with an object, it tells Windows to increase that object's reference counter by one. When the driver finishes working with the object, it tells Windows to decrease the counter by one. Blue screen error 0x00000018, known as REFERENCE_BY_POINTER, occurs when this counter reaches an illegal value. The operating system stops immediately to prevent data corruption. The most frequent trigger is a software driver that does not balance its reference requests. Instead of matching each increase with exactly one decrease, the driver issues extra commands to lower the count. As a result, the count can drop to zero while active handles to the object are still open, or the count can drop below zero entirely. When Windows detects that an object's reference count no longer matches its actual usage state, it triggers bug check 0x18. The crash screen often provides diagnostic parameters for developers and technicians. Parameter 1 shows the object type whose reference count was being lowered. Parameter 2 provides the exact memory address of the object itself. Parameters 3 and 4 are reserved by Windows. Software developers and technicians analyze these crashes using debugging tools such as WinDbg. By executing debug commands such as !analyze and !object address, they inspect the remaining handle count and pointer count on the affected object. For typical users, however, you do not need to operate a debugger to locate the root cause. Examining the Event Viewer System Log can uncover error messages showing which device or driver failed before the system halted. If a specific driver file is named on the blue screen, updating that driver through the manufacturer or disabling the malfunctioning device stops the faulty dereference calls. Ensuring that any newly added hardware matches official Windows hardware specifications prevents compatibility flaws that also cause this stop code.

Common causes

  • A driver repeatedly decreases the reference count of an object without matching increase calls.
  • An object reference count drops to zero while active handles to the object remain open.
  • A driver forces an object reference count to drop below zero.
  • Newly installed hardware is incompatible with the installed version of Windows.

How to fix it

Safest and most likely fixes first. Readers' answers to "Did this fix it?" reorder this list over time.

  1. Check the Event Viewer System Log

    Use this first to look for error messages that identify the specific device or driver triggering the crash.

    1. Open Event Viewer by searching for it in the Windows search bar.
    2. Navigate to Windows Logs in the left sidebar and select System.
    3. Review the list for error events logged right around the time of the crash.
    4. Check the event details to identify any device name or driver file associated with the failure.
    Did this fix it?
  2. Update or disable the faulting driver

    Use this if the blue screen message or Event Viewer identified a specific driver causing the crash.

    1. Identify the driver name reported in the crash message or Event Viewer log.
    2. Visit the hardware manufacturer website to download and install the latest driver update.
    3. Open Device Manager if an update is unavailable or fails to stop the crash.
    4. Locate the affected device, right-click it, and select Disable device.
    Did this fix it?
  3. Verify hardware compatibility

    Use this if the crash started occurring immediately after connecting or installing new hardware.

    1. Disconnect or remove the newly added hardware component.
    2. Review the Windows hardware specifications to ensure the hardware supports your installed Windows version.
    3. Restart Windows to verify that the stop code no longer appears without the hardware connected.
    Did this fix it?
  4. Analyze crash dumps with Windows debuggers

    Use this advanced step if you have WinDbg installed and want to inspect the exact object address causing the stop check.

    1. Open the memory dump file in WinDbg.
    2. Run the !analyze debug extension command to view root cause information.
    3. Note the memory address listed under Parameter 2 of the bug check.
    4. Execute !object address using the address from Parameter 2 to inspect handle and pointer counts.
    Did this fix it?

Is it just you?

25+ Microsoft Q&A threads discuss this. Most recent activity:

Checked Oct 9, 2026. Refreshed automatically every few days.

Sources

Frequently asked questions

What causes the REFERENCE_BY_POINTER blue screen?

It occurs when a device driver incorrectly lowers an object reference count too many times, driving the count to zero while handles are open or dropping it below zero.

What do Parameter 1 and Parameter 2 mean in bug check 0x18?

Parameter 1 identifies the object type whose reference count is being lowered, while Parameter 2 specifies the memory address of the object itself.

Can new hardware trigger bug check 0x00000018?

Yes, installing hardware that is incompatible with your current Windows version can cause driver inconsistencies that trigger this stop code.