wencs
驱动牛犊
驱动牛犊
  • 注册日期2009-03-23
  • 最后登录2009-06-24
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1320回复:0

Passthru例子MPReturnPacket() 没有NdisFreeBuffer(),为什么?

楼主#
更多 发布于:2009-04-10 21:21
帮助文档NdisFreePacket()函数中明确写着
Before calling NdisFreePacket, the driver either must call NdisFreeBuffer as many times as necessary to...
(在调用NdisFreePacket之前,驱动程序要么调用与XXX相等次数的NdisFreeBuffer,要么...)
但在MPReturnPacket例程中,却直接调用NdisFreePacket,没有 先调用NdisFreeBuffer,其源码如下:

PADAPT                  pAdapt = (PADAPT)MiniportAdapterContext;
PNDIS_PACKET   MyPacket;
PRSVD                Resvd;

Resvd = (PRSVD)(Packet->MiniportReserved);
MyPacket = Resvd->OriginalPkt;

NdisFreePacket(Packet);   // 就是这里不用先调用NdisFreeBuffer吗?
NdisReturnPackets(&MyPacket, 1);

谢谢了!
游客

返回顶部