ndis 获取了包如何继续往下传?

reezonew 2013-01-30 02:24:11
我就是想获取包里的内容,赋值到Mypacket然后,继续用ndissend发下去。
passthru里的MPSendPackets的代码里是这样实现的。

//上面的代码我就不贴出来了
NDIS_PACKET_FIRST_NDIS_BUFFER(MyPacket) = NDIS_PACKET_FIRST_NDIS_BUFFER(Packet);
NDIS_PACKET_LAST_NDIS_BUFFER(MyPacket) = NDIS_PACKET_LAST_NDIS_BUFFER(Packet);

我就是想实现,类似的功能:通过NdisQueryPacket,获取了数据包内容PUCHAR pPacketContent,之后分配新的一个Buffer描述符,把新的包描述符存放到新的包描述符中的中去,最后和Mypacket建立链接。
以上从网上找了代码,但是好像不起作用。不知道我的思路是否正确,还请大牛帮忙解决问题。

PSEND_RSVD SendRsvd;
PNDIS_BUFFER MyBuffer;
NDIS_STATUS status = NULL;
// 分配新的一个Buffer描述符
NdisAllocateBuffer(&status, &MyBuffer, pAdapt->SendPacketPoolHandle,
pPacketContent, TotalPacketLength);
if (NDIS_STATUS_SUCCESS != status)
{
NdisFreeMemory(pPacketContent, 2014, 0);
return FALSE;
}

// 把新的包描述符存放到新的包描述符中的MiniportReserved中去
SendRsvd = (PSEND_RSVD)(MyPacket->MiniportReserved);
SendRsvd->OriginalPkt = MyPacket;
NdisChainBufferAtFront(MyPacket, MyBuffer);

...全文
561 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
reezonew 2013-03-27
  • 打赏
  • 举报
回复
晕,没人知道?

21,600

社区成员

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

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