如何用NdisUnchainBufferAtBack删掉PNDIS_PACKET后面两个buffer descriptors

sailor0309 2008-10-17 07:34:34
NdisUnchainBufferAtBack函数可以用来移除包的缓冲描述符链的最后一个,
如果我想将包的缓冲描述符链的最后两个或者多个移除掉(至少保留首部的一个buffer descriptor),该怎么做?我试着两次调用NdisUnchainBufferAtBack,可是总蓝屏。


而且,我用下面的代码移除最后一个buffer descriptor,并且,清空该buffer descriptors 指向的内存,也会蓝屏,这又是为什么?

PVOID address;
PNDIS_BUFFER tmpBuffer, pBuffer;
ULONG current_length;
PSEND_RSVD SendRsvd;

NdisUnchainBufferAtBack(MyPacket ,&pBuffer);

while (NULL != pBuffer)
{
NdisQueryBufferSafe(pBuffer, &address, ¤t_length, NormalPagePriority);
NdisFreeMemory(address, current_length, 0);
tmpBuffer = pBuffer;
NdisGetNextBuffer(tmpBuffer, &pBuffer);
// NdisFreeBuffer(tmpBuffer);
}
...全文
71 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sailor0309 2008-10-20
  • 打赏
  • 举报
回复
各位大大帮帮忙,急啊

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧