aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
阅读:1798回复:4

DeviceIoControl返回TRUE,但是输入出参数不对?

楼主#
更多 发布于:2004-10-30 18:53
今天我遇到一个奇怪的问题。
我使用的所有DeviceIoControl函数,返回值都不为0。但是所有的DeviceIoControl函数的倒数第二个参数值为0,输入输出缓冲区都无效或为0,那一位大虾能说明一下原因呀!
BOOL DeviceIoControl(
  HANDLE hDevice,
  DWORD dwIoControlCode,
  LPVOID lpInBuffer,
  DWORD nInBufferSize,
  LPVOID lpOutBuffer,
  DWORD nOutBufferSize,
  LPDWORD lpBytesReturned,
  LPOVERLAPPED lpOverlapped
);
技术交流:aasa2@21cn.com QQ群:10863699
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-30 22:26
驱动没有处理好
虽然Complete,并且使用了STATUS_SUCCESS,但你没有设置好Information字段
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-30 22:52
情况是这样的。
应用程序动态加载驱动程序,并且和驱动程序通过DeviceIoControl交互信息。
应用程序和驱动程序都是别人做好了的,可以正常通信。但我觉得他的应用程序有点繁,就删减了他的部分代码,驱动程序没有修改。
这一改就出现上面所说的问题了!
我看了代码好几遍,没有发现问题。

大家遇到过这种问题吗?


[编辑 -  10/30/04 by  aasa2]
技术交流:aasa2@21cn.com QQ群:10863699
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-10-31 18:04
那应该是你修改带来的问题
可能先需要执行某些request,而你修改后没有执行
也或者你的参数传递不对,如果你有驱动的代码,看看驱动处理是否存在依赖关系,当然应用也应该能看得出来
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
aasa2
驱动中牛
驱动中牛
  • 注册日期2004-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分525分
  • 威望339点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-10-31 18:20
问题解决,如AllenZh所说的一样。
技术交流:aasa2@21cn.com QQ群:10863699
游客

返回顶部