smallbarrow
驱动小牛
驱动小牛
  • 注册日期2002-06-05
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1432回复:5

Huyuguang及各位大虾,能帮俺解释一下这个问题吗?

楼主#
更多 发布于:2002-06-26 17:14
俺定义了一个全局变量的指针指向一片常驻内存的非分页的缓冲区;在mpinitialize中用ndisallocatememory对它进行初始化。
俺想在mpsend中使用这块内存分配一个buffer,存放要发送的packet中的所有数据(也就是将所有buffer中的数据合并到一个buffer中),构造成一个新的packet,发送出去。
释放buffer,packet是没有问题的,收发数据、上网都没有问题。但卸载这个驱动的时候会出现问题,俺不知道在那儿用ndisfreememory释放掉那块全局变量指向的内存。
俺试着在ptunbindadapter中释放,也试着在mphalt中释放,但softice总是显示page fault错误。
请各位帮帮忙分析一下。多谢了!
嗒嗒的,是那马蹄 是我的心声 别了 一瞬间的花朵
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-26 17:30
俺定义了一个全局变量的指针指向一片常驻内存的非分页的缓冲区;在mpinitialize中用ndisallocatememory对它进行初始化。
俺想在mpsend中使用这块内存分配一个buffer,存放要发送的packet中的所有数据(也就是将所有buffer中的数据合并到一个buffer中),构造成一个新的packet,发送出去。
释放buffer,packet是没有问题的,收发数据、上网都没有问题。但卸载这个驱动的时候会出现问题,俺不知道在那儿用ndisfreememory释放掉那块全局变量指向的内存。
俺试着在ptunbindadapter中释放,也试着在mphalt中释放,但softice总是显示page fault错误。
请各位帮帮忙分析一下。多谢了!


是2k下的passthru吗?

好像它本身的卸载有问题,是个bug!

[color=red]大头鬼! :P[/color]
smallbarrow
驱动小牛
驱动小牛
  • 注册日期2002-06-05
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-06-26 17:41
是2k下的passthru。
应当怎样解决这个bug呢?
嗒嗒的,是那马蹄 是我的心声 别了 一瞬间的花朵
iacceptit
驱动小牛
驱动小牛
  • 注册日期2002-05-30
  • 最后登录2003-07-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-27 07:58
我也关心一次性的资源释放问题。
都说ms的bug,ptunbind不调用,那在哪释放呢?

请gjpland指教.

关注!
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-27 11:16
俺定义了一个全局变量的指针指向一片常驻内存的非分页的缓冲区;在mpinitialize中用ndisallocatememory对它进行初始化。
俺想在mpsend中使用这块内存分配一个buffer,存放要发送的packet中的所有数据(也就是将所有buffer中的数据合并到一个buffer中),构造成一个新的packet,发送出去。
释放buffer,packet是没有问题的,收发数据、上网都没有问题。但卸载这个驱动的时候会出现问题,俺不知道在那儿用ndisfreememory释放掉那块全局变量指向的内存。
俺试着在ptunbindadapter中释放,也试着在mphalt中释放,但softice总是显示page fault错误。
请各位帮帮忙分析一下。多谢了!


1.在卸载时,你先不释放这块内存。看看有没有错,确定是否真的是NdisAllocateMemory,NdisFreeMemory出的错。
2.如果是,那么缓冲区是否越界使用了?
3.卸载.并不一定调用ptunbindadapter.
4.确定buffer是不是和adpater关联,是否在该adpater关闭后不在使用了。(建议在MacCloseAdapterHandler里释放)


我思故我在,脑袋不会坏.
jyhlc
驱动牛犊
驱动牛犊
  • 注册日期2002-03-11
  • 最后登录2005-11-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-27 14:52
Buffer可以用ndisallocatememory分配吗?
好像buffer 是一个mdl吧,可以直接用memory代替吗?比较怀疑!
游客

返回顶部