You're in the middle of launching an app—maybe QuickBooks, maybe an old printer driver utility, or some line-of-business software your company depends on—and boom, you get the error: STATUS_ILLEGAL_DLL_RELOCATION (0xC0000269). The message says the system DLL was relocated in memory, but that's geek-speak for 'something went wrong loading a critical DLL.' I've seen this most often after a Windows feature update (like the 22H2 update) or after installing a security patch that changed how memory is mapped. Sometimes it's a badly written app that tries to patch a system DLL at a hard-coded address that's now taken.
What Actually Causes This
Every Windows system DLL (like kernel32.dll, user32.dll, ntdll.dll) expects to load at a specific base address in memory. When that address is already occupied—by another DLL, by a driver, by a piece of malware, or by a memory layout change from an update—Windows tries to relocate the DLL to a free spot. But some DLLs, especially old ones or those with hard-coded jumps, can't handle relocation. They crash with this error. It's rare but nasty when it hits.
Had a client last month whose entire print queue died because of this—an old HP driver DLL conflicted with a Windows security update. Took me two hours to trace it.
Fix It: Step by Step
- Identify the offending app or driver. Look at the error details. If it mentions a specific DLL name (like
hpz3lw5u.dllormfc42.dll), that's your culprit. Check the Application Event Log (eventvwr.msc) under Windows Logs > Application for events with ID 1000 or 1001 referencing 0xC0000269. You'll see the faulting module. - Reinstall the app that triggers the error. Uninstall it, reboot, then install the latest version from the vendor. Don't use an old installer sitting on a network share—grab the newest release. Old installers often ship DLLs that don't like modern Windows memory layouts.
- Run SFC and DISM. Open Command Prompt as Administrator and run:
If it finds corrupted files but can't fix all of them, then run:sfc /scannow
Reboot after both. This fixes cases where a Windows update left a system DLL in a weird state.DISM /Online /Cleanup-Image /RestoreHealth - Check for malware that hooks DLLs. Some malware (especially rootkits or adware) inject hooks into system DLL base addresses. Run a full scan with Windows Defender (offline scan) and Malwarebytes. I once had a client where a browser hijacker caused
ntdll.dllto relocate, triggering this error on every app launch. - Update or roll back drivers. If the error appears with a specific piece of hardware (printers, scanners, old USB devices), update the driver from the manufacturer's site. If the problem started after a Windows update, try rolling back the driver in Device Manager. Go to the device, right-click, Properties > Driver > Roll Back Driver. Not always available, but worth a shot.
- Clear DLL caches. Run Disk Cleanup (cleanmgr) and check 'Temporary files' and 'Delivery Optimization Files'. Also delete the contents of
C:\Windows\Tempand%TEMP%(old temp files can mess with DLL loading). Reboot. - Last resort: System Restore or repair install. If nothing else works and the error appeared recently, run System Restore to a point before the problem started. If that fails or isn't available, you can do an in-place upgrade using Windows 10/11 Media Creation Tool—it reinstalls Windows while keeping your apps and files. It's a pain but it clears out corrupted system file mappings.
Still Failing? Check These
- Application compatibility mode. Right-click the app's .exe, go to Properties > Compatibility, and try Windows 7 or Windows 8 mode. Some old apps hard-code DLL addresses that Windows 10/11 no longer reserve.
- Third-party antivirus. Disable it temporarily. AV software sometimes reserves memory ranges that conflict with system DLLs. If the error goes away, add an exclusion for the app's folder.
- Check for multiple copies of the same DLL. Use Process Explorer (from Sysinternals) to see if the app loads a DLL from an unexpected path. Right-click the app process, Properties, and check the DLL list. If you see a system DLL loading from the app's folder instead of
C:\Windows\System32, that's your problem—delete the rogue copy (after backing it up).
This error is a pain because it's not common, and the fix depends on what exactly triggered it. But nine times out of ten, it's a software reinstall or a Windows file repair that does the job. If you're still stuck after these steps, post the exact DLL name from the error—that'll point us straight to the fix.