我想使用通过 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 的磁盘。