Quick answer: Run chkdsk C: /f /r from an elevated Command Prompt to repair file system corruption and remap bad sectors. If that fails, back up immediately and replace the drive — physical failures don't get better.
Why This Happens
NS_E_DISK_READ with code 0XC00D0017 comes from Windows Media Player SDK — it's a generic I/O error that the OS throws when a read request to a storage device fails. I've seen it pop up when someone tries to play a video from an external drive mid-copy, or after a power loss corrupts the file system. The real cause is almost always one of three things:
- Bad sectors: The drive's magnetic surface physically degraded. The read head can't retrieve data from that spot.
- File system corruption: The NTFS/MFT table is inconsistent — happens after improper shutdowns or drive disconnects.
- Connection issues: Loose SATA cable, failing USB controller, or dying external drive enclosure.
What's actually happening here is the OS sends an IRP (I/O Request Packet) to the disk driver, and the disk returns STATUS_UNRECOGNIZED_MEDIA or STATUS_DEVICE_DATA_ERROR. The error bubbles up through the file system and lands on your app as 0XC00D0017. Don't treat it as a software glitch — it's the system telling you the hardware isn't cooperating.
Step-by-Step Fix
- Identify the failing drive. Open
Disk Management(diskmgmt.msc) and look for any disk marked as “Offline,” “Uninitialized,” or with a warning icon. If it's an external drive, note the drive letter (e.g., E:). For internal drives, you'll see C: or D:. - Run chkdsk with repair. Open Command Prompt as Administrator. Run:
Replace X with your drive letter. Thechkdsk X: /f /r/fflag fixes file system errors,/rlocates bad sectors and attempts to recover readable data. On the system drive (C:), it'll schedule the check at next reboot — reboot immediately. - Inspect S.M.A.R.T. status. Use
wmic diskdrive get statusin Command Prompt. If it returns anything other than “OK,” the drive is failing. For a deeper look, grab CrystalDiskInfo — it's free and shows raw read error rates, reallocated sectors, and pending sector counts. Any red or yellow warnings mean time to replace. - Reseat cables. For internal SATA drives, power off the PC, open the case, unplug and replug both the data and power cables. SATA cables are fragile — a loose crimp or bent pin will cause intermittent reads. Swap the cable with a known-good one if you have a spare.
- Test on another machine. If it's an external USB drive, plug it into a different PC. If the error disappears, the problem is your USB port, cable, or controller. If it follows the drive, the drive itself is the issue.
Alternative Fixes When chkdsk Fails
If chkdsk gets stuck or reports that the disk is unrecoverable, you can try these:
- Use a Linux live USB to bypass Windows. Boot from Ubuntu USB, mount the drive, and run
fsckon it. Linux often handles FS corruption that Windows chokes on. Command:sudo fsck /dev/sdX1(replace X with your drive letter). - Clone the drive with ddrescue. If you need data back, use
ddrescueon Linux to copy readable sectors first, then retry bad ones. It's brutal but effective. Example:sudo ddrescue -d /dev/sdX /dev/sdY rescue.log. - Freeze the drive (last resort). This is a trick from the 2000s — seal the drive in a Ziploc bag and put it in the freezer for an hour. The idea is that cold contracts the metal and temporarily loosens a stuck spindle. It works about 20% of the time, and only for a few minutes. You'll get one shot to copy data. I've done it once successfully with an old 80GB IDE drive. Not a real fix — just a Hail Mary for data recovery.
Prevention Tip
Don't trust a single drive for anything you care about. Backup to at least two separate devices (one off-site). Enable S.M.A.R.T. monitoring in your system BIOS or with a tool like HDD Guardian. And never yank a USB drive without clicking “Safely Remove Hardware” — that's what causes file system corruption that leads to errors like this. Check your drive health once a month. If reallocated sector count increases or raw read error rates spike, replace the drive before it dies completely.