cloudycro
驱动牛犊
驱动牛犊
  • 注册日期2003-12-02
  • 最后登录2006-02-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2245回复:6

DeviceIoControl出错!!

楼主#
更多 发布于:2004-03-05 18:11
我能够打开设备CreateFile
为什么调用DeviceIoControl就返回31错误:
31
A device attached to the system is not functioning.  
ERROR_GEN_FAILURE
这个怎么改正呢?
我从前用过的可以的啊!很急!多谢帮忙,分不是问题!! :(
yongliliu
驱动小牛
驱动小牛
  • 注册日期2003-10-20
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-05 18:55
把源代码贴出来
成功不是天上掉下来的免费的丰盛的晚餐!
cloudycro
驱动牛犊
驱动牛犊
  • 注册日期2003-12-02
  • 最后登录2006-02-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-06 10:10
这个地方的问题,已经解决了就是程序的问题。
但是向您请教一个问题!
DeviceIoControl传输一块缓冲区,是不是采用链表结构是不合适的?我原来定义了一块规则链,都是分别分配的空间,传送到驱动去,加载执行。使用指针链起来的一个链表,应该用数组是不是?程序蓝屏,我猜是这个原因,可惜没时间测试了。 :(
cloudycro
驱动牛犊
驱动牛犊
  • 注册日期2003-12-02
  • 最后登录2006-02-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-03-06 10:43
还有一个问题!
如果我有一个对本机可以进行访问控制的防火墙,用中间层驱动实现的,可以直接装在服务器上(双网卡的)进行对局域网的控制么?
中间层驱动力面对发包进行的过滤!谢谢!
yongliliu
驱动小牛
驱动小牛
  • 注册日期2003-10-20
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-03-08 17:45
1、首先网络防火墙要做更多工作,主机防火墙一般只是过滤
2、规则配置一般使用共享内存技术,不要把内存块通过Irp来回传递,每次可以通过Irp只传递很小的数据;通过应用程序可以直接访问共享内存就有更高的效率,配合IoControlCode就会以极高的效率实现策略配置
成功不是天上掉下来的免费的丰盛的晚餐!
cloudycro
驱动牛犊
驱动牛犊
  • 注册日期2003-12-02
  • 最后登录2006-02-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-03-08 20:37
1、首先网络防火墙要做更多工作,主机防火墙一般只是过滤
2、规则配置一般使用共享内存技术,不要把内存块通过Irp来回传递,每次可以通过Irp只传递很小的数据;通过应用程序可以直接访问共享内存就有更高的效率,配合IoControlCode就会以极高的效率实现策略配置


谢谢yongliliu,呵呵,看见你经常给回答问题啊!
这个问题我今天做了试验,把装了我的主机防火墙的机器作为了我的局域网的网关,包过滤的部分还是可以工作,不过对于驱动绑定的部分没有进行处理,可能是两块网卡都绑定了,不过我对发包、入包的判断是不对的,我原来把MiniportSend里面发现的不合法的包都认为是发出的,而ProtocolReceive里面不合法的包的都认为是进入的,不过似乎结果有些问题?! :(
另外,主机上面用了很久了,调试通了之后就不再蓝屏了,可惜在服务器地方就坚持了5分钟,虽然这段时间可以正常工作,但是之后却蓝屏了,在服务器方的处理需要有什么要特别注意的呢?
共享内存的办法谢谢提醒!我会试试的。
期待你和各路高手的回答~~ :D

[编辑 -  3/8/04 by  cloudycro]
tacl202
驱动牛犊
驱动牛犊
  • 注册日期2005-05-01
  • 最后登录2005-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-05-04 17:12
cloudycro:
  你好,我现在在做USB设备.在应用程序中用到了deviceiocontrol()来读设备,但是返回31错误.不知道你以前是如何解决这个问题的.
请帮忙.qq:416923170.email: tacl202@163.com
游客

返回顶部