Why This Error Happens
Error 996 (“Overlapped I/O event is not in a signaled state”) occurs when an asynchronous I/O operation attempts to check the status of an event object that hasn’t yet been triggered by the completion of a read/write operation. This typically happens due to outdated or corrupted device drivers (especially network, USB, or storage controllers) that mismanage overlapped I/O structures, or when a third-party application incorrectly polls a hardware handle before the OS signals completion. It can also surface after a Windows Update if driver-kernel API calls become desynchronized.
Step-by-Step Resolution Guide
-
Identify the Faulting Driver/Device
Open Event Viewer (eventvwr.msc) → Windows Logs → System. Filter for Event ID 996 and note the source (e.g., a specific driver name or application likeusbccgp.sys,netvsc.sys, or a printer/scanner driver). -
Update or Roll Back the Driver
- Press
Win + X→ Device Manager. - Expand the category matching the faulting device (Network Adapters, Universal Serial Bus controllers, etc.).
- Right-click the device → Update driver → Search automatically for drivers.
- If the error started after a recent update, instead choose Properties → Driver tab → Roll Back Driver.
- Reinstall the Problematic Driver
- In Device Manager, right-click the device → Uninstall device → check Attempt to remove the driver software for this device → Uninstall.
- Restart the PC; Windows 11 will reinstall a fresh driver copy automatically.
- Run System File Checker and DISM
Open Command Prompt (Admin) and run:
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth
This repairs corrupted system files that manage I/O completion ports and kernel event objects.
- Check for Pending Windows Updates
Go to Settings → Windows Update → Check for updates. Install any pending cumulative or driver updates, as Microsoft frequently patches overlapped I/O handling bugs in these releases.
Alternative or Verification Steps
- After applying the fix, reopen Event Viewer and confirm Event ID 996 no longer appears after reproducing the original action (e.g., reconnecting the device or running the affected app).
- If the error persists, use Reliability Monitor (
perfmon /rel) to correlate the error with a specific app/driver install date, then consider a System Restore to a point before that install.