liantorch
驱动牛犊
驱动牛犊
  • 注册日期2008-07-24
  • 最后登录2010-05-21
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望88点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1445回复:2

驱动异步调用的问题,请各位帮忙解答

楼主#
更多 发布于:2009-02-21 13:40
在用驱动进行异步读取USB 口的时候有个疑问:应用程序发出了DeviceIoContol后,驱动的派遣函数中对发来的ioctl 处理时,是返回了STATUS_PENDING,那这时候,派遣函数已经返回了,但我还没有进行数据读取的操作啊!我该在什么地方,启动读取USB口的操作函数,并设置IoCompleteRequest()函数来结束IRP啊?因为我这时已经不能控制驱动了啊,是不是要在return STATUS_PENDING前,开启一个内核线程来读取USB口数据呢?还是在结束设备时,在DispatchCleanup派遣函数中,完成读USB口的工作阿?希望各位高手帮忙解答一下,不胜感激!!!
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-02-22 13:31
方法很多,你可以在Displath时候就去读,
也可以将IRP队列起来使用现成去处理,
还可以启动Work Item等
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
liantorch
驱动牛犊
驱动牛犊
  • 注册日期2008-07-24
  • 最后登录2010-05-21
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望88点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-03-01 09:32
非常感谢AllenZh的回复,我是个菜鸟级的,所以对您的回复还有些疑问,望能解答。
1. 在Displath时就去读,那是不是Displath就阻塞了,不能及时返回SUSPENDING了?
2. Work Item 是指的什么啊,我没有见到这个用法啊。
您如果能够再给一些解答或给一点代码提示,不胜感激!!!!
游客

返回顶部