проверить наличие плохих секторов на жестком диске

Недавно, после нескольких отключений электропитания, мой компьютер сильно испортился (время от времени BSOD иногда ведет себя очень странно).

Теперь у меня есть программа, которая прекрасно работала до того, как мой компьютер испортился. Эта программа просто создает файл, используяCreateFile и пишет в него, используяWriteFile, Эта программа также имеет другие вещи, которые делают свое дело на основе этого файла. Я заметил, что вся программа действовала также странно.

Мои результаты отладки:

Я заметил что послеCreateFileфайл создается там, где он должен быть (проверяется с помощью Проводника и командной строки).WriteFile не записал в файл (снова проверил используя Проводник и командную строку).ПослеWriteFileвсякий раз, когда я дважды щелкал файл в Проводнике или что-то делал с этим файлом, все происходило так, как будто файл не существует.Все API вернули свои соответствующие коды успеха. Нет ошибок абсолютно.

После того, как я остановил свою программу и вышел из IDE, я зашел в проводник и попытался удалить папку, содержащую файл, созданный выше, он показал мне это:

Файл был удален, хотя.

Примечание: Выше не всегда бывает.

Из-за описанной выше отладки я пришел к выводу, что из-за того, что вся моя ОС ведет себя странно, моя программа также работает странно. Нет ошибок в моей программе (так как все работало идеально до тех пороков).

Во всяком случае, Microsoft имеетэто сказать об этой ошибке, По сути, на моем жестком диске много плохих секторов.

Мой вопрос: Есть ли способ программно проверить, нормально ли работает жесткий диск в C? Это обнаружение не обязательно должно быть на 100% правильным. Я, однако, хочу, чтобы эта проверка была довольно быстрой (так как я делаю много записей и тому подобное).

Я хочу эту проверку, потому что на данный момент остальная часть моей программы думает, что файл там и готов (потому что ничего не вернуло ошибку), и возникает всякое странное поведение. Как пользователь, который может не знать, что его / ее жесткий диск зонирован, я хотел бы, чтобы моя программа предложила запустить проверку диска.

Ответы на вопрос(2)

Ваш ответ на вопрос