阅读:1290回复:6
关于在IRQL<=DISPATCH时,把一堆数据写到文件的问题
我这段程序可能在IRQL<=DISPATCH,我想把一堆数据写到文件,我是想用IO_WORKITEM,可是老在这出错:Probably caused by : ntkrnlpa.exe ( nt!ExWorkerQueue+74 )。我不知道还有没有其它的好办法,请高手指点一下,谢谢,最好赋段代码,不胜感激!
|
|
沙发#
发布于:2008-11-20 11:31
在xp下面不要用老的query 函数!用带device的参数的那个函数
|
|
板凳#
发布于:2008-11-20 11:32
ExWorkerQueue
|
|
地板#
发布于: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); |
|
地下室#
发布于:2008-11-20 12:55
WriteBuffer就是一个打开文件写的函数, ,就是搞不定
|
|
5楼#
发布于:2008-11-20 14:13
IoQueueWorkItem 不要用这个函数!要带deviceobject 的参数的函数
|
|
6楼#
发布于:2008-11-24 14:46
呵呵,解决,谢谢您
|
|