【发布时间】:2015-07-24 14:30:04
【问题描述】:
我想使用通过 DeviceIoControl() 发送的 ATA 命令读取大容量磁盘。使用ATA_PASS_THROUGH_EX 结构发送命令是主要问题。实际上,CurrentTaskFile[] 类型的 UCHAR 数组无法发送不大于 16777215 的扇区。
CurrentTaskFile[2] = 0xFF;
CurrentTaskFile[3] = 0xFF;
CurrentTaskFile[4] = 0xFF;
即CurrentTaskFile[2] = 0xFF是扇区号寄存器,CurrentTaskFile[3] = 0xFF是圆柱低寄存器,CurrentTaskFile[3] = 0xFF是圆柱高寄存器。
现在如果我想读取不超过 16777215 的扇区该怎么办(如果我想读取 1 TB 磁盘的最后一个扇区)。如何发送不超过 16777215 的扇区。实际上我必须读取容量高达 4 TB 的磁盘。
【问题讨论】:
标签: c++ visual-c++ disk ata