0XC0000245

0xC0000245 Timer Resolution Fix on Windows 10/11

Windows apps crash with STATUS_TIMER_RESOLUTION_NOT_SET when timer APIs are misused. Here's how to fix it cleanly, plus workarounds for stubborn cases.

You're in the middle of launching a game or a video editing tool, and bam — Windows tosses an error: 0xC0000245 (STATUS_TIMER_RESOLUTION_NOT_SET). This happens most often when you start an app that relies on precise timing — think media players, benchmark tools, or even some older antivirus scanners. The app crashes immediately, sometimes before a window even appears.

What causes this error?

Windows has a timer resolution system — it controls how often the system checks for timed events. By default, the resolution is 15.6 milliseconds (about 64 ticks per second). Some apps need finer granularity — say 1 ms — for smooth playback or accurate measurements. To get that, they call a Windows API function like NtSetTimerResolution or timeBeginPeriod.

Here's the catch: the API requires the app to first set the resolution, then later unset it when done. The error STATUS_TIMER_RESOLUTION_NOT_SET means the app tried to restore the resolution, but it never actually set it in the first place. That's a bug in the app's code — it forgot to call the 'set' function, or it called the 'unset' function twice. Windows is strict about this: if you try to unset a resolution that wasn't set by your process, it throws this exact error.

I've seen this with a few specific apps: older versions of Fraps, some in-house corporate tools, and even a notorious media player that shall remain nameless. It's frustrating because the fix isn't obvious — you can't just 'update drivers' and move on.

Fix 1: Update or reinstall the crashing app

The real fix is to get a patched version of the app. Developers usually fix this once they realize they've botched the timer calls. Check the app's official site or forum for updates. If you're using an old version, upgrade. If you're on the latest, try reinstalling — sometimes installers leave behind a mismatched DLL.

Fix 2: Run the app in compatibility mode

This doesn't always work, but it's worth a shot. Right-click the app's .exe file, go to Properties → Compatibility, then check 'Run this program in compatibility mode for' and pick an older Windows version (Windows 7 or 8). Windows will apply a patch that can mask the timer behavior. It's a workaround, not a cure, but it beats a crash.

Fix 3: Use the Windows Timer Resolution tool (advanced)

If the app is essential and there's no update, you can force a system-wide timer resolution. This is a bit hacky but works. Download a portable tool like timerres.exe from Sysprogs. Run it as administrator — it sets the system timer to 0.5 ms persistently. Now the app might not even need to set its own resolution, so the buggy unset call won't fail because the resolution was 'already set' system-wide.

Here's how to do it manually with PowerShell (run as admin):

# Set timer resolution to 0.5 ms (requires the tool)
./timerres.exe 0.5

# Check current resolution
./timerres.exe /query

I don't love this approach — it burns more battery and CPU — but for a single legacy app, it's acceptable. Just remember to revert by running timerres.exe 15.6 when you're done.

Fix 4: Disable full-screen optimizations

For games or full-screen apps, Windows can mess with timer behavior through 'Fullscreen Optimizations'. Right-click the .exe → Properties → Compatibility → check 'Disable fullscreen optimizations'. Apply and relaunch. I've seen this resolve the error for a few people, though the logic is fuzzy — it's worth 30 seconds of your time.

What if it still crashes?

Then the app is fundamentally broken for your Windows version. Check if there's a 64-bit version (if you're on 64-bit Windows). Check if the app requires .NET 3.5 — enable it via Control Panel → Programs → Turn Windows features on or off. If nothing works, find an alternative app. Honestly, if a developer ships a timer bug like this and doesn't fix it, they might have other lurking issues.

One more thing: if it's a custom in-house app, talk to your IT team. They can patch the source code — the fix is to ensure timeBeginPeriod(1) is called before timeEndPeriod(1), and never call timeEndPeriod more times than timeBeginPeriod.

Quick recap: This error is a programming bug, not a hardware problem. Update the app, try compatibility mode, or force a system timer resolution as a last resort. Don't reinstall Windows over this — you'll waste hours.
Related Errors in Windows Errors
0X00000FD7 Fix PEERDIST_ERROR_ALREADY_INITIALIZED (0x00000FD7) Error 0X8028003D Fix TPM_E_BAD_LOCALITY (0x8028003D) in Windows 11/10 The Windows Installer Service could not be accessed Windows Installer Service Missing: Quick Fix That Works 0X00000652 Fix ERROR_INSTALL_ALREADY_RUNNING (0x00000652)

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.