libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:967回复:5

关于直接方式的异步写问题

楼主#
更多 发布于:2003-08-02 12:47
我是用DS写的NT式的ISA驱动,应用程序发DEVICEIOCTL直接写端口,采用METHOD_OUT_DIRECT的异步写方式,应用中申请的缓冲区是90K,在我的电脑上(配置P4 2.4 G,512M内存,80G硬盘)上成功地实现了驱动和应用的通信,现在在工控机上联调(配置P1,128M内存,20G笔记本硬盘),可是应用调用驱动时间不是很长就死机了,从启后显示,驱动不能加载上,错误代码是0xC0000221, 我去系统目录下的WINNT/SYSTEM32/DRIVERS/目录下看,显示,文件的格式不对,要我插入WIN2000安装光盘,从新安装,而且我驱动的。SYS文件也不见了,说明驱动文件被软坏了,我试着重新把好的。SYS文件拷贝到WINNT/SYSTEM32/DRIVERS下,可是一粘贴就死机,是什么原因啊 ????

难道METHOD_OUT_DIRECT对缓冲区的大小有限制??
还是由于异步的原因??可是我在自己的电脑上能成功运行啊!
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-04 16:24
怎么没人回答啊,其实我想问的是应用程序采用METHOD_IN_DIRECT(从板子读数据)方式和驱动通信,在应用层分配缓冲区的大小有没有限制,我申请100K的算大吗??

还有一个问题 ,我的驱动中对MDL的操作,释放MDL是我做,还是系统来做??
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-04 16:29
说说你用METHOD_OUT_DIRECT的理由
 :D

100k小case :D

mdl谁分配的谁释放 :D
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-08-04 16:58
说说你用METHOD_OUT_DIRECT的理由
 :D

100k小case :D

mdl谁分配的谁释放 :D


谢谢你的回答,我第一次说错了,应该是METHOD_IN_DIRECT,因为我是从主板传数据给ISA板。DEVICEIOCTL里的两个缓冲区,输入缓冲区用来存放我要发给ISA的数据的字节数(每次传送的不一样),输出缓冲区存放要给ISA板的数据。IRP的排队方式是系统排队,我觉得这样做没什么问题啊!

我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-08-04 17:25
想法没错
做法不一定,好好check :D
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-08-04 20:48
想法没错
做法不一定,好好check :D

我就是这么做的,怎么检查呢??

我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
游客

返回顶部