lovehunterboy
驱动小牛
驱动小牛
  • 注册日期2008-05-29
  • 最后登录2010-04-16
  • 粉丝2
  • 关注0
  • 积分67分
  • 威望463点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1290回复:6

关于在IRQL<=DISPATCH时,把一堆数据写到文件的问题

楼主#
更多 发布于:2008-11-20 10:30
我这段程序可能在IRQL<=DISPATCH,我想把一堆数据写到文件,我是想用IO_WORKITEM,可是老在这出错:Probably caused by : ntkrnlpa.exe ( nt!ExWorkerQueue+74 )。我不知道还有没有其它的好办法,请高手指点一下,谢谢,最好赋段代码,不胜感激!
qianjunhua
驱动小牛
驱动小牛
  • 注册日期2003-12-08
  • 最后登录2013-02-27
  • 粉丝11
  • 关注0
  • 积分712分
  • 威望1052点
  • 贡献值1点
  • 好评度57点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-11-20 11:31
在xp下面不要用老的query 函数!用带device的参数的那个函数
qianjunhua
驱动小牛
驱动小牛
  • 注册日期2003-12-08
  • 最后登录2013-02-27
  • 粉丝11
  • 关注0
  • 积分712分
  • 威望1052点
  • 贡献值1点
  • 好评度57点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-11-20 11:32
ExWorkerQueue
lovehunterboy
驱动小牛
驱动小牛
  • 注册日期2008-05-29
  • 最后登录2010-04-16
  • 粉丝2
  • 关注0
  • 积分67分
  • 威望463点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-11-20 12:53
Packet = (char *) ExAllocatePool(NonPagedPool, bufferSize);
            pwritelog = (PWrite_Log) ExAllocatePool(NonPagedPool, sizeof(Write_Log));            
            pwritelog->item = IoAllocateWorkItem(deviceObject);    
            pwritelog->packet = packet;
            pwritelog->size = bufferSize;
            IoQueueWorkItem(pwritelog->item,(PIO_WORKITEM_ROUTINE)  WriteBuffer,
                DelayedWorkQueue,pwritelog);
lovehunterboy
驱动小牛
驱动小牛
  • 注册日期2008-05-29
  • 最后登录2010-04-16
  • 粉丝2
  • 关注0
  • 积分67分
  • 威望463点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-11-20 12:55
WriteBuffer就是一个打开文件写的函数,   ,就是搞不定
qianjunhua
驱动小牛
驱动小牛
  • 注册日期2003-12-08
  • 最后登录2013-02-27
  • 粉丝11
  • 关注0
  • 积分712分
  • 威望1052点
  • 贡献值1点
  • 好评度57点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2008-11-20 14:13
IoQueueWorkItem 不要用这个函数!要带deviceobject 的参数的函数
lovehunterboy
驱动小牛
驱动小牛
  • 注册日期2008-05-29
  • 最后登录2010-04-16
  • 粉丝2
  • 关注0
  • 积分67分
  • 威望463点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-11-24 14:46
呵呵,解决,谢谢您
游客

返回顶部