diesnak
驱动牛犊
驱动牛犊
  • 注册日期2002-03-04
  • 最后登录2002-12-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1952回复:4

100分!!!!驱动程序试图在一个IRQL级别太高的进程上访问可分页内存?

楼主#
更多 发布于:2002-11-28 17:16
我在passthru里面的ReceiveHandler里面这样拷贝数据包:
首先NdisAllocatePacket();
然后NdisQueryPacket();得到要拷贝的数据包的总长度,
然后NdisAllocateMemory();分配所需长度的内存空间,
然后NdisAllocateBuffer();分配目的数据包的Buffer,(BufferPool在PtBindAdapter里面已经做了);
然后NdisQueryBuffer();得到源数据包的每一个Buffer的虚存地址,将其内容拷贝到我自己的Buffer里面去,
然后NdisMoveMemroy()通过NDIS_OOB_DATA_FROM_PACKET()拷贝OOB数据,
然后设置一些数据包的其他信息,
最后调用NdisSend()发送这个拷贝出来的数据包,结果蓝屏,显示错误为驱动程序试图在一个IRQL级别太高的进程上访问可分页内存,引起这一错误的是Ndis.sys.....
哪位能帮我解决这个问题,给100分都不嫌多阿.....

最新喜欢:

chilichili
I believv i can fly I believe i can touch sky
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于: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
还有问题再具体点提出来。
生命驱动,活力无限!
diesnak
驱动牛犊
驱动牛犊
  • 注册日期2002-03-04
  • 最后登录2002-12-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-02 08:44
呵呵,我知道为什么出错了.是因为我没有修改PtSendComplete的代码,所以当windows返回pendding,调用我得PtSendComplete代码时,会访问到不属于我驱动程序的内存,才出的错. :D :D :D
I believv i can fly I believe i can touch sky
diesnak
驱动牛犊
驱动牛犊
  • 注册日期2002-03-04
  • 最后登录2002-12-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-02 08:45
为了感谢您的关注,分还是要给的.... ;)
I believv i can fly I believe i can touch sky
cyf_rich
驱动牛犊
驱动牛犊
  • 注册日期2002-03-14
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-07 12:04
我在passthru里面的ReceiveHandler里面这样拷贝数据包:
首先NdisAllocatePacket();
然后NdisQueryPacket();得到要拷贝的数据包的总长度,
然后NdisAllocateMemory();分配所需长度的内存空间,
然后NdisAllocateBuffer();分配目的数据包的Buffer,(BufferPool在PtBindAdapter里面已经做了);
然后NdisQueryBuffer();得到源数据包的每一个Buffer的虚存地址,将其内容拷贝到我自己的Buffer里面去,
然后NdisMoveMemroy()通过NDIS_OOB_DATA_FROM_PACKET()拷贝OOB数据,
然后设置一些数据包的其他信息,
最后调用NdisSend()发送这个拷贝出来的数据包,结果蓝屏,显示错误为驱动程序试图在一个IRQL级别太高的进程上访问可分页内存,引起这一错误的是Ndis.sys.....
哪位能帮我解决这个问题,给100分都不嫌多阿.....



什么叫不属于我驱动程序的内存的内存呀???PtSendComplete里面的变量是函数自己分配的呀????到底不属于我驱动程序的内存到底是指的什么能否说得具体点呢????
游客

返回顶部