0x0000003B SYSTEM_SERVICE_EXCEPTION

Windows was crossing the boundary from user mode into kernel mode to service a system call, and something threw an exception it could not recover from. The code tells you where the crash happened, not what caused it, which is why the same stop code shows up for a stale graphics driver and for a failing memory stick.

Updated 2026-07-27Stop errorAlso written: 0x3B, bugcheck 3b, SYSTEM SERVICE EXCEPTION, stop code 0x0000003b

What you are looking at

:(

Your PC ran into a problem and needs to restart.

If you call a support person, give them this info:

Stop code: SYSTEM_SERVICE_EXCEPTION

In Event Viewer the matching entries look like this:

Log Name:      System
Source:        BugCheck
Event ID:      1001
Level:         Error

The computer has rebooted from a bugcheck.  The bugcheck was: 0x0000003b (0x00000000c0000005, 0xfffff8036a1c4e10, 0xffffb80f9c2a7530, 0x0000000000000000). A dump was saved in: C:\Windows\MEMORY.DMP.

What the error actually means

Windows runs application code in user mode, where a crash only kills the application. Kernel code runs in kernel mode, where a crash takes down the machine. Every time a program asks the operating system to do something privileged, execution crosses that boundary through a system call.

Bugcheck 0x3B fires when an exception is raised inside that transition and no handler deals with it. The kernel has no safe way to continue, so it stops everything and writes a dump.

The practical consequence: the crash location is a busy intersection that almost all software passes through. Finding the driver that actually misbehaved means reading the dump, not reading the stop code.

Reading the parameters

The four numbers in the parentheses are the useful part. The first one in particular narrows the field immediately.

ParameterWhat it holds
1The exception code. 0xC0000005 is an access violation - something used a pointer it should not have, and this accounts for the large majority of 0x3B crashes. 0xC0000006 is an in-page error, which points at storage or memory rather than logic. 0x80000003 is a hardcoded breakpoint, normally only seen with a debug build or a driver left in a debug state.
2The address of the instruction that raised the exception. On its own it is meaningless, but a debugger resolves it to a module name - and that module name is the whole point of the exercise.
3The address of the context record, which holds the CPU register state at the moment of the fault. This is what a debugger reads to reconstruct the call stack.
4Reserved. Always zero. Ignore it.

What actually triggers it

Ranked by what actually turns up in practice rather than by what is theoretically possible.

CauseHow oftenDetail
Graphics driverCommonBy a wide margin the most frequent culprit, because display drivers are enormous and constantly in the syscall path. nvlddmkm.sys, amdkmdag.sys and igdkmd64.sys are the usual names in the dump.
Other third-party driversCommonAudio interfaces, network adapters, VPN clients, RGB and fan-control utilities, virtual drive software. Anything that installs a kernel driver can do this, and vendor utilities are often poorly maintained.
Filter drivers from security softwareOccasionalAnti-virus and anti-cheat products insert themselves into file and process operations by design. When two of them disagree, the fault surfaces here.
Unstable memory timingsOccasionalAn XMP or EXPO profile that is not genuinely stable produces crashes that look random and move around between stop codes. This is under-diagnosed because people assume an advertised profile must work.
Failing RAMOccasionalA bad cell corrupts whatever happens to live there. If it lands on a kernel pointer you get an access violation in whichever driver read it - so the dump blames an innocent module.
Paged pool exhaustion from graphics driversOccasionalA documented and under-known cause. Microsoft notes this error has historically been linked to excessive use of the paged pool, occurring when user-mode graphics drivers cross over and pass bad data to kernel code. If the crashes correlate with heavy graphics work and pool usage climbs over time, this is worth pursuing with Driver Verifier's pool options rather than a plain driver reinstall.
Corrupt system filesRareReal, but over-recommended. Worth ten minutes to rule out, not worth treating as the default explanation.
Failing CPU, board or power deliveryRareRare as a first diagnosis, but it is where you end up when nothing else explains the pattern - especially alongside WHEA entries in the same log.

Narrowing it down

Work through these in order. Each one either eliminates a category or points at the next test, and none of them costs anything.

Read the dump before you change anything

Install WinDbg from the Microsoft Store, open C:\Windows\MEMORY.DMP (or the newest file in C:\Windows\Minidump), and run:

!analyze -v

Scroll to MODULE_NAME and IMAGE_NAME. That is the single most informative thing you will get all day, and it takes about five minutes.

Two more commands are worth knowing here. Where Windows itself identified a responsible driver, it stores the name in memory and you can print it directly:

dx KiBugCheckDriver

And to decode the exception code from parameter 1 into a sentence:

!error 00000000c0000005

Microsoft's documented route when the stack is unhelpful is .cxr with the parameter 3 address, followed by kb - that rebuilds the register context and gives you a usable backtrace.

What it tells you

A third-party .sys file names your suspect directly. If it says ntoskrnl.exe or ntfs.sys, do not conclude that Windows itself is broken - see the FAQ below, because those are usually the victim rather than the offender.

Check whether the crashes cluster around an activity

Crashes only under 3D load point somewhere very different from crashes while the machine sits idle overnight. Open Event Viewer, filter the System log to Critical and Error, and look at what was happening around each timestamp.

What it tells you

Load-correlated crashes suggest thermals, power delivery or an unstable overclock. Idle crashes suggest link-state and power-management transitions, which more often means hardware or firmware than an application bug.

Look for WHEA entries in the same log

Filter the System log by the source WHEA-Logger. These are hardware errors the machine reported directly, independent of any driver.

What it tells you

Any WHEA entries clustered near your stop errors shift the odds sharply toward hardware, and mean you should stop reinstalling drivers. Start with WHEA-Logger Event 17.

Count how many distinct stop codes you have seen

Go through the reboot history and write down every bugcheck code, not just the most recent one.

What it tells you

One code repeating points at one broken component, usually software. Several unrelated codes - 0x3B, then 0x1E, then 0x50, then a silent reboot - is the signature of memory corruption or a board-level fault, because bad data lands in a different place each time.

Fixes, cheapest first

Ordered by cost and effort. Do not skip to the expensive end; the top three resolve most cases.

  1. Clean-install the graphics driver

    Effort: 20 minutes · Risk: Low

    An in-place driver update leaves the old files behind, which is exactly the state that produces these crashes. Remove it properly instead.

    1. Download the current driver from NVIDIA, AMD or Intel directly - not from Windows Update, and not from the laptop vendor unless it is a laptop with hybrid graphics.
    2. Download Display Driver Uninstaller (DDU) and reboot into Safe Mode.
    3. Run DDU, choose Clean and restart.
    4. Install the driver you downloaded. Decline any bundled extras you do not use.
    Watch out

    If the crashes started after a driver update, install the previous release instead of the newest one. Newer is not automatically better, and regressions in display drivers are common.

  2. Verify system files

    Effort: 15 minutes · Risk: None

    Cheap to rule out. Run these from an administrator terminal, in this order, and let each finish.

    1. sfc /scannow
    2. DISM /Online /Cleanup-Image /RestoreHealth
    3. sfc /scannow once more, so it can use the repaired component store
  3. Return memory to stock settings

    Effort: 10 minutes · Risk: Low

    In UEFI, disable XMP, EXPO or any manual memory profile, and clear any CPU overclock or undervolt. This drops performance slightly and costs nothing.

    Run the machine that way for a few days. If the crashes stop, the profile was not stable - re-enable it and either loosen the primary timings or raise the memory controller voltage a step, rather than assuming the advertised speed is guaranteed.

  4. Test the RAM properly

    Effort: Overnight · Risk: None

    Windows Memory Diagnostic is not sensitive enough to trust a pass from it. Use MemTest86 from a USB stick and let it run at least four full passes, ideally overnight.

    Watch out

    A clean pass does not fully exonerate memory - intermittent faults can hide from it - but any error at all is conclusive. If you get errors, re-test one stick at a time to find which one, and test each in the same slot so you are not chasing a bad slot instead.

  5. Strip back third-party drivers

    Effort: 30 minutes · Risk: Low

    Uninstall anything that runs at kernel level and is not essential: RGB and fan utilities, third-party anti-virus, VPN clients, virtual CD software, old printer packages, anti-cheat services from games you no longer play.

    Then perform a clean boot with msconfig and use the machine normally for a day.

  6. Use Driver Verifier as a last software step

    Effort: Several hours · Risk: Medium - read the note

    Driver Verifier deliberately stresses drivers so a misbehaving one crashes immediately and identifiably rather than randomly. It is the strongest software-side tool available and it is built into Windows.

    1. Create a system restore point first.
    2. Run verifier as administrator, choose Create custom settings, then Select individual settings from a full list.
    3. Enable Special Pool, Force IRQL checking, Pool Tracking and I/O Verification.
    4. Choose Select driver names from a list and tick only drivers not provided by Microsoft.
    5. Reboot and use the machine. When it bugchecks, the dump will name the offending driver.
    6. Turn it off afterwards with verifier /reset and reboot.
    Watch out

    Verifier deliberately increases crashes and can cause a boot loop. Run verifier /bootmode resetonbootfail before enabling any checks - it makes Verifier disable itself automatically if the machine fails to start, which removes most of the risk. Your manual exit is Safe Mode followed by verifier /reset. Full settings and the escape route are in the Driver Verifier guide.

When it is the hardware, not Windows

At some point the software explanations run out. These are the signals that you have crossed over, and that further reinstalling is wasted effort:

If several of those apply, stop troubleshooting and start documenting. Export the relevant Event Viewer entries, keep the dump files, and write down the date and description of every failure. A support call backed by a crash history and exported logs goes very differently from one that starts with the words it keeps crashing. If the machine is still under warranty, that record is the thing that gets it replaced rather than reimaged.

Frequently asked

The dump names ntoskrnl.exe. Is Windows itself broken?

Almost certainly not. ntoskrnl.exe is the Windows kernel, and it appears because it was executing when the fault surfaced - it is usually the messenger. The same applies to ntfs.sys and dxgkrnl.sys. Look further down the stack in !analyze -v for a third-party driver, and if the kernel really is the only name present, that pattern points more toward memory corruption than a Windows bug.

Will reinstalling Windows fix it?

It fixes it when the cause is a corrupted driver stack or a software conflict, which is a meaningful share of cases. It does nothing for bad memory, a failing board or an unstable overclock. Because a reinstall destroys the evidence you would need for a warranty claim, capture your dumps and Event Viewer entries first - and treat a crash that survives a clean install as strong evidence of hardware.

Can I just ignore it if it only happens once a month?

You can, but track it. The thing that matters is the trend. A fault that arrives once a month, then weekly, then daily is a component degrading, and the useful time to act is while it is still intermittent and still under warranty - not after it fails completely.

No dump file is being written. What now?

Open System Properties, then Advanced, then Startup and Recovery, and set Write debugging information to Automatic memory dump or Small memory dump. Make sure the page file is on the system drive and system-managed. If dumps still never appear despite crashes, that is itself a signal: it usually means the machine is failing before it can write one, which points at hardware.