阅读:1441回复:2
帮忙!WriteFileEx为什么不调用设置的完成路径
本人写下WriteFileEx代码,调试发现驱动程序完成IRP处理后不调用设置的路径,不知为什么。
。。。。。。 Result=WriteFileEx( AdapterObject->hFile, lpPacket->Buffer, lpPacket->Length, &lpPacket->OverLapped, PacketCompletePacket //完成路径 ); 。。。。。。 //完成路径定义 VOID CALLBACK PacketCompletePacket( DWORD dwErrorCode, // completion code DWORD dwNumberOfBytesTransfered, // number of bytes transferred LPOVERLAPPED lpOverlapped // information ) { WaitForSingleObject(IRPCountMutex,INFINITE); PacketFreePacketArray(lpStack[IRPCount]); lpStack[IRPCount]=NULL; IRPCount--; ReleaseMutex(IRPCountMutex); return ; } |
|
沙发#
发布于:2002-04-18 14:47
1. 最好用softice在驱动程序中设断点,看看在驱动中有
什么问题 2. 也可以在writefileEx之后用GetOverlappedResult 看是超时还是返回错误,可以参考错误码 luck |
|
|
板凳#
发布于:2002-04-20 10:27
首先,我得说明我已很久没有写这方面程序了,我只是有点记忆,现在也没有环境,如果有错误的话,请一笑了之。
1、确信Result==1 2、如果不进入回调函数,那么就说明driver要么没有写成功(可能是发送成功),要么是发送后,没有返回SUCCESS,或驱动中有发送完成后的函数没有进一步处理(所谓发送完成后的函数的申明是在DriverEntry时,要注册时,你自己填写的很多函数之一)。 |
|
|