我需要清除我一直试图在 WPF/C# 应用程序中清除的可移动媒体设备(自定义 USB 存储设备)的扇区 0。我的第一次尝试是使用DD,但我遇到了问题。在设备制造过程中,在扇区 0 创建 MBR,卷(逻辑?)从扇区 40 开始。当我发出以下命令时,它会清除扇区 40 而不是扇区 0:
我在这里
dd bs=512 count=1 if=/dev/zero of=\.\E:
找到了另一个版本的 DD ,其中包括擦拭实用程序。我试过这个版本,我看到了同样的行为。我正在使用 HxD 和 Runtime 的 DiskExplorer,正在清除扇区 40 而不是扇区 0。我可以使用 HxD 或 Runtime 的 DiskExplorer,但这需要是可编写脚本的。
有谁知道在 Windows XP SP2 中清除(填充)扇区 0 的任何其他方法?任何帮助将不胜感激。谢谢。
标记
解决方案:我的解决方案使用 WMI 根据逻辑驱动器号查找物理驱动器。首先,查询 Win32_LogicalDiskToPartition 类以找到我要查找的逻辑驱动器。这提供了包含类似'...DeviceID="Disk #X, Partition #Y"'的Antecedent 字段。接下来,我查询 Win32_DiskDriveToDiskPartition 类,同时搜索 Dependent 字段以查找 Win32_LogicalDiskToPartition 类中的 Antecedent 字段的匹配项。一旦找到,Win32_LogicalDiskToPartition 中的 Antecedent 字段将产生物理驱动器。我选择了 atzz,因为它与我的解决方案很接近。我想使用 Eugene 的建议,但我只有几个小时来实现这个,所以我选择了两者中更容易的一个。不过,我需要稍后再谈。