您的位置:首页 > 其它

ReadFile读取硬盘返回值为0的解决办法

2010-08-22 00:42 183 查看

申明,本人不是不擅长编程,所以写文章难免会有错误,欢迎各位多多提意见,

昨天修改一个以前写的小程序,由于要处理超大的文件,所以准备修改一下读取的结构体的大小。

struct NTFS_MFT

{

char tag[4];

.........

}

NTFS_MFT MFT_en;

DWORD dwRZ;

int cb = ReadFile(hFile,&MFT_en,size(NTFS_MFT),&dwRZ,0)



......



在读取NTFS_MFT这个结构体的时候,cb老是返回0值,正常情况下应该返回1. 以前一直使用这种方法来读取,没有报错,但这次找了很久,没找到原因,甚至将以前的代码以及结构体完整复制过来进行读取。仍然错误。

后来仔细区分,之前使用这种方式读取时,是读取的文件,而这里要读取的物理硬盘,需要512字节对齐,也就是说,每次需要读取512个字节。将结构体修改成原来的512字节,将ReadFile修改如下后读取成功。

int cb = ReadFile(hFile,&MFT_en,512,&dwRZ,0)



......

}

作者 天问数据恢复 谭云 www.raiddb.com
本文出自 “谭云(数据恢复)” 博客,请务必保留此出处http://raiddb.blog.51cto.com/1020004/381108
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐