followboy
驱动牛犊
驱动牛犊
  • 注册日期2006-07-27
  • 最后登录2007-02-09
  • 粉丝0
  • 关注0
  • 积分180分
  • 威望19点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
阅读:1527回复:3

关于DeviceIoControl的问题

楼主#
更多 发布于:2007-01-29 16:07
  关于DeviceIoControl的问题

用CreateFile()打开成功,但用DeviceIoControl()于驱动程序通讯时总是说功能错误,返回的错误码都为1,请问是什么原因???

请高手帮忙!!谢谢!!
tracera
禁止发言
禁止发言
  • 注册日期2006-01-09
  • 最后登录2018-09-25
  • 粉丝8
  • 关注0
  • 积分-5788分
  • 威望135321点
  • 贡献值0点
  • 好评度625点
  • 原创分1分
  • 专家分0分
  • 社区居民
沙发#
发布于:2007-02-01 12:57
用户被禁言,该主题自动屏蔽!
followboy
驱动牛犊
驱动牛犊
  • 注册日期2006-07-27
  • 最后登录2007-02-09
  • 粉丝0
  • 关注0
  • 积分180分
  • 威望19点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-01-30 15:04
谢谢回复!驱动中的 io ctrl code 与软件中的 ctrl code 是一致的,是在一个头文件里定义的,
#define IOCTL_FILTER_STOP CTL_CODE(FILE_DEVICE_UNKNOWN, 0x900, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_FILTER_START CTL_CODE(FILE_DEVICE_UNKNOWN, 0x901, METHOD_BUFFERED, FILE_ANY_ACCESS)
驱动和应用程序里边包含了这个头文件,开始我怀疑是device type不一致,但是通过查看驱动中的参数,确定了设备的类型是一致的。


另外,还有一个比较奇怪的事情就是,虽然应用程序中调用deviceiocontrol()时,返回错误,但是驱动程序却收到了应用程序发出的信息,并且也做了相应的操作,不知道为什么?请大家帮帮忙!!
lvwj
驱动老牛
驱动老牛
  • 注册日期2001-08-21
  • 最后登录2021-01-31
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望181点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2007-01-30 13:08
检查一下你驱动中的 io ctrl code 与你软件中的 ctrl code 是否一致。确认你使用的是同一个数值。再好好看看 msdn 中该函数的使用方法。
www.bjjcz.com
游客

返回顶部