阅读:1952回复:4
100分!!!!驱动程序试图在一个IRQL级别太高的进程上访问可分页内存?
我在passthru里面的ReceiveHandler里面这样拷贝数据包:
首先NdisAllocatePacket(); 然后NdisQueryPacket();得到要拷贝的数据包的总长度, 然后NdisAllocateMemory();分配所需长度的内存空间, 然后NdisAllocateBuffer();分配目的数据包的Buffer,(BufferPool在PtBindAdapter里面已经做了); 然后NdisQueryBuffer();得到源数据包的每一个Buffer的虚存地址,将其内容拷贝到我自己的Buffer里面去, 然后NdisMoveMemroy()通过NDIS_OOB_DATA_FROM_PACKET()拷贝OOB数据, 然后设置一些数据包的其他信息, 最后调用NdisSend()发送这个拷贝出来的数据包,结果蓝屏,显示错误为驱动程序试图在一个IRQL级别太高的进程上访问可分页内存,引起这一错误的是Ndis.sys..... 哪位能帮我解决这个问题,给100分都不嫌多阿..... |
|
最新喜欢:chili
|
沙发#
发布于:2002-11-29 09:55
去这儿看一下:
http://www.driverdevelop.com/forum/viewthread.php?fid=16&tid=26682&page=1&totalpost=45 可参考: http://www.driverdevelop.com/forum/viewthread.php?tid=13119 还有问题再具体点提出来。 |
|
|
板凳#
发布于:2002-12-02 08:44
呵呵,我知道为什么出错了.是因为我没有修改PtSendComplete的代码,所以当windows返回pendding,调用我得PtSendComplete代码时,会访问到不属于我驱动程序的内存,才出的错. :D :D :D
|
|
|
地板#
发布于:2002-12-02 08:45
为了感谢您的关注,分还是要给的.... ;)
|
|
|
地下室#
发布于:2002-12-07 12:04
我在passthru里面的ReceiveHandler里面这样拷贝数据包: 什么叫不属于我驱动程序的内存的内存呀???PtSendComplete里面的变量是函数自己分配的呀????到底不属于我驱动程序的内存到底是指的什么能否说得具体点呢???? |
|