感谢David Heffernan的帮助,我有一个用 Freepascal 编写的程序(但我的问题的 Delphi 解决方案就足够了),逐个扇区读取物理磁盘。它使用 Windows API CreateFileW 函数来处理磁盘句柄,然后使用 FileFile、FileSeek等进行导航和读取。如果所有扇区都正常,它工作正常。但是,如果磁盘有坏扇区,我需要区别对待。
我的问题是,在读取这些扇区时,是否可以使用程序或库来确定它们是否是坏扇区?如果没有,我该怎么做?我认为是磁盘控制器知道哪些扇区是坏的,哪些不是,所以我认为我的程序实际上不能访问坏扇区,那么我如何检测哪些是坏扇区并采取相应的行动?是否需要查询 SMART,如果需要,如何查询?
我搜索了这个站点(只找到了这个 C 帖子,它与程序有关,而不是代码)并用谷歌搜索,没有明显的解决方案引起我的注意。