如何读写硬盘的最后一些扇区
DWORD SetFilePointer(HANDLE hFile,
LONG lDistanceToMove,
PLONG lpDistanceToMoveHigh,
DWORD dwMoveMethod
);
我尝试着用这个函数移动指针,然后用 writeFile() ,readFile()读写函数,可结果
始终是 只能读写 前2g的硬盘,我用了 PLONG lpDistanceToMoveHigh,
这个参数了哦
另外就是,deviceIoControl(),用 IOCTL_DISK_GET_DRIVE_GEOMETR_EX啊,获取的总字节数/512 才为实际的扇区数,
CHS计算出的结果始终要小些,谁知道原因哦?? 高手 指教哦?? (38:看不懂o LONG lDistanceToMove,
PLONG lpDistanceToMoveHigh,
需要这两个参数高低位进行配合才能读取大磁盘。 需要这两个参数高低位进行配合才能读取大磁盘。
我已经两个参数都用上了,就是无法读取后面的硬盘
另外我 在想 可不可以用 file_end这个标志位哦,
也就是setFilePointer()从硬盘末向前移动 回复 5# ghostknightsy
那样开发起来就麻烦多了! 程序复杂程度也大大增加了。 回复 6# jim19
不会啊,代码还更加少些呢,不过这个原因是为什么就不知道了
还有就是,deviceIoControl()函数获取C,H,S计算出的总扇区数也小于
硬盘的实际扇区数(磁盘工具获取的哦) 咋感觉这里面 很少有人 谈 编程实现 的东东
许多都是在讲 各种各样的磁盘工具哦 回复 8# ghostknightsy
这里主要讨论修盘和数据恢复的,有兴趣加qq聊聊, 5 9 8 8 2 0 9 1 9 方便把代码贴出来吗? 你仔细看看你高双字参数用错了没?如果没有 则用异步版本试试
页:
[1]
2