阅读:1320回复:0
Passthru例子MPReturnPacket() 没有NdisFreeBuffer(),为什么?
帮助文档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); 谢谢了! |
|