Если вы знаете букву диска, вы можете попробовать следующее:
HANDLE h = CreateFile("\\\\.\\E:", 0, 0, NULL, OPEN_EXISTING, 0, NULL);
if (h == INVALID_HANDLE_VALUE)
{
DWORD err = GetLastError();
if (err == ERROR_FILE_NOT_FOUND)
printf("The drive E: is not ready\n");
else
printf("Unknown error %lu\n", (int)err);
}
else
{
CloseHandle(h); /* don't forget to close the handle! */
printf("The drive E: is ready\n");
}
То есть откройте накопитель, не запрашивая права на чтение или запись. Он должен выйти из строя, только если диск не готов. Работает с картой памяти USB.