You'll see 0xC01E0312 right after a display driver update, or when you apply a custom resolution via the NVIDIA Control Panel or AMD Radeon Software and then switch the monitor to a different refresh rate. The screen goes black for a second, then you get a Blue Screen with STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET. I've also seen this happen when someone plugs a laptop into a dock and the external monitor's EDID is misreported.
What's actually happening here
Windows uses something called the VidPN (Video Present Network) to manage how displays connect to the GPU. Every display mode that's currently active—resolution, refresh rate, color depth—gets placed into a co-functional modality set. This set is a list of modes that the GPU can legally use together without breaking timing or bandwidth.
When a mode is pinned, it means Windows has decided that this mode is the one that must stay active. The pin is set by the display driver when it creates the VidPN, and it's not something you can change from user mode. If the driver later tries to remove that pinned mode—say, because the new driver's internal validation says it's not valid anymore—Windows throws 0xC01E0312 and refuses the whole operation.
The root cause is almost always a driver that's trying to do something the OS considers illegal. Either the new driver has a bug where it drops a mode that it shouldn't, or the EDID data from your monitor is faulty, so the driver thinks a mode is invalid and removes it.
Fix: numbered steps
- Roll back the display driver. If this started right after an update, go to Device Manager > Display adapters > right-click your GPU > Properties > Driver tab > Roll Back Driver. This restores the previous driver that didn't have the bug. If rollback is greyed out, skip to step 2.
- Use Display Driver Uninstaller (DDU) in Safe Mode. Download DDU, reboot into Safe Mode (Shift + Restart, then Troubleshoot > Advanced options > Startup Settings > Restart > 4). Run DDU to completely remove the current driver, then install the latest stable driver from NVIDIA, AMD, or Intel's site—not Windows Update. This clears any residual driver state that might hold a corrupted VidPN.
- Delete custom resolution overrides. If you have a custom mode set in the control panel, remove it. Open NVIDIA Control Panel > Display > Change resolution > Customize > delete any custom modes. On AMD, it's under Settings > Display > Custom Resolutions. A custom mode that's out of spec can cause the driver to try to remove the pinned mode.
- Check the EDID with a different cable or port. Bad EDID data is a common trigger. Try a different DisplayPort or HDMI port, or a different cable. If the error goes away, the port/cable is corrupting the EDID. A workaround is to force the EDID in the registry (see below), but that's a last resort.
- Force the monitor's EDID in the registry. If you're sure the cable is fine, you can override the EDID. Find your monitor's registry key under
HKLM\SYSTEM\CurrentControlSet\Enum\DISPLAY\<MonitorID>\<Instance>. Add aDWORDnamedOverridewith value1, then create a binary valueEDIDwith a valid EDID blob. This is advanced—only do it if you know what you're doing. - Update the monitor's firmware. Some monitors, especially Samsung and LG, have had EDID bugs fixed by firmware updates. Check the manufacturer's support page.
If it still fails
If none of that works, the driver you're using is likely incompatible with your GPU or monitor combo. Try an older driver from the vendor's archive—not the latest. For example, with NVIDIA, try a studio driver from a few months back. Also, check if there's a known issue for your exact GPU model and Windows build (search the vendor's forums).
One more thing: if this happens during a game or a video playback, it could be a GPU hardware fault. Run a stress test like FurMark for 10 minutes. If you get artifacts or another BSOD, the GPU might be dying. That's rare, but it happens.
The pinned mode error is Windows being strict about what the driver can do. Most of the time it's a driver bug, and a clean driver install fixes it. Don't waste time tweaking registry settings unless you've confirmed the EDID is the culprit.