ReadFile函数对读ULONG类型的数据是不是有问题?

lethebalmy 2009-03-25 04:00:49
我的测试程序中调用:bRet=ReadFile(hDevice, buffer,4, &ulRead,NULL);buffer是ULONG类型的指针,由于ReadFile里面的长度指的是字节数,所以后面是4。dbgview打印出来的Irp->AssociatedIrp.SystemBuffer的值在读完之后是7F167F03,结果测试程序打印出来的结果是buffer=0(初始化为0),这是代码:printf("Read File Result: %X\n",*buffer);按照常理来说Irp->AssociatedIrp.SystemBuffer里面的值是应该被自动复制到buffer中的。实在想不通为什么了,求达人告知啊
...全文
74 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
324234234134 2010-04-05
  • 打赏
  • 举报
回复
读扇区512字节?你确定是完成例程里?Irp->AssociatedIrp.SystemBuffer已经被赋值
船过水无痕 2010-04-04
  • 打赏
  • 举报
回复
ReadFile(hDevice, buffer,4, &ulRead,NULL)
这个buffer有分配空间没? 或者lz这样试下:
ULONG buffer = 0;
ReadFile(hDevice,&buffer,4,&ulRead,NULL);
  • 打赏
  • 举报
回复
看看 ulRead 是否初始化为0,ulRead必须初始化为0
hjjdebug 2009-03-25
  • 打赏
  • 举报
回复
你可以打印一下bRet 的值,看其是否返回成功。
还可以打印一下ulRead 值, 看其是否返回为4.

如果你觉得读回的值不正确,先判定是否读取成功,若不成功,可能是hDevice 未正确初始化。或者
数据不够4个byte.

21,615

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧