首页
社区
课程
招聘
[求助]ReadFile老是执行出错的问题,很郁闷哦
发表于: 2009-12-5 16:06 5595

[求助]ReadFile老是执行出错的问题,很郁闷哦

2009-12-5 16:06
5595
char Buffer[256];
         DWORD  BytesReturned;
         HANDLE hDisk=CreateFile("\\\\.\\C:",GENERIC_READ+GENERIC_WRITE,FILE_SHARE_READ+FILE_SHARE_WRITE,NULL,
                      OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
        if(hDisk==INVALID_HANDLE_VALUE)
                return FALSE;
        NTFSBPB ntfsbpb;
        DWORD BytesReturned;
        BOOL bRet=ReadFile(hDisk,Buffer,256,&BytesReturned,NULL);

CreateFile函数执行成功,ReadFile老是返回0,这代表出错,我用GetLastError函数得到的错误码是0x57,查了一下,说是参数不正确,这我就不懂了:ReadFile函数的参数我没用错啊.这到底是怎么回事啊?

忘了说了,我是用debug模式编译的

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
要按扇区对齐,至少得是512吧~
2009-12-5 16:08
0
雪    币: 63
活跃值: (17)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
请查看MSDN 关于CreateFile volume的规则说明
2009-12-5 16:12
0
雪    币: 225
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
achillis说的很正确,把缓冲区加到512字节大小,ReadFile就执行成功了,谢谢了
2009-12-5 16:21
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
直接读取磁盘时,必须按扇区大小对齐,按3楼说的去看下MSDN吧
2009-12-5 16:27
0
游客
登录 | 注册 方可回帖
返回
//