HDDHealth Monitor
Low-level S.M.A.R.T. health monitor for ATA, USB, and NVMe drives on Windows.
Get it Now!
What It Does
HDDHealth Monitor reads raw S.M.A.R.T. data directly from physical drives via DeviceIoControl and presents it through a clean, modern GUI. It supports three drive types through their respective Windows IOCTLs:
- ATA / SATA drives via
IOCTL_ATA_PASS_THROUGH_DIRECT - USB bridge chips (JMicron, ASMedia, Realtek, Cypress, etc.) via
IOCTL_SCSI_PASS_THROUGH_DIRECTusing SAT (SCSI-ATA-Translation) - NVMe drives via
IOCTL_STORAGE_QUERY_PROPERTY, reading Health Info Log 0x02
Features
- Per-drive health percentage and performance metric
- Full S.M.A.R.T. attribute table (ID, value, worst, raw, status)
- Temperature / health / failure critical alerts via tray notifications
- Hot-plug aware — USB drives detected on arrival
- Per-drive history graph (health % and individual attribute over time)
- Save-screenshot feature (PNG via GDI+)
- Multi-drive tray icons
Compatibility
Windows 11
Windows 10
Windows 8.1
Windows 8
Windows 7
Windows Vista
Build from Source
Requires MinGW-w64 or TDM-GCC (any recent GCC with C++ support).
# MinGW / MSYS2
make
# TDM-GCC
mingw32-make
The output binary is placed at bin/HDDHealth.exe.