nightmarer
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2004-01-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:880回复:2

急!在线守~做过miniport网卡的请进拿分

楼主#
更多 发布于:2003-03-26 10:26
问题如下:在DriverEntry中注册的sendhandler为xxxsend.其中有一参数packet,是PNDIS_PACKET型号的.我想从中提取出包的各种信息,如目的地址,源地址,长度...数据域等等.请问如何做到?多谢!
已知:“力量“是力,单位是牛顿;power是功率,单位是瓦特。 证明:知识就是力量:knowledge=F;时间就是金钱:time=money 由power=work/time=work/money―>money=work/power,一个人的power,也就是功率,也就是努力的程度一定的话,干的work越多,money就越多。另外,功率=F*v=牵引力*速度=力*距离/时间=知识*路径/金钱,也就是说,金钱=知识*路径/功率,同样的,如果努力的程度不变的话,越有知识的人金钱就越多,或者如果知识不大的话,那就要走远一点弯路,加大路径了。而同时我们也发现,功率并不是越大越好,也就是说,死读书未必有用,可能适得其反,而不是知识不好。如果将上述两条公式联合起来,我们还发现,work=知识*距离,也就是说,要完成同一件工作,要不你就很有知识,走几步路就可以达到目的了,要不你就得起早摸黑的多走几步路,才能把知识的不足补回来。现在,阿贵明白了没有?好,不明白,下课!
kenli79
驱动小牛
驱动小牛
  • 注册日期2002-06-12
  • 最后登录2003-07-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-26 10:39
NDIS_GET_PACKET_HEADER_SIZE
NDIS_GET_PACKET_PROTOCOL_TYPE
NDIS_GET_PACKET_STATUS
...

其它的自己到头文件,DDK里找找.
超级菜鸟!!!!!!!!!
right_wind
驱动中牛
驱动中牛
  • 注册日期2001-10-12
  • 最后登录2018-05-29
  • 粉丝1
  • 关注0
  • 积分60分
  • 威望66点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-03-26 16:21
看看这段代码:
UINT CopyPacket2Buf(
IN PNDIS_PACKET Packet,
OUT PUCHAR pPacketContent,
OUT UINT* pPacketSize)
{
UINT bufLength;
MDL* pNext;
UINT i;
PUCHAR pbuf;

// 获得packet长度
NdisQueryPacket(Packet, NULL, NULL, NULL,pPacketSize);

//
NdisQueryBufferSafe(Packet->Private.Head, &pbuf, &bufLength, 32 );
NdisMoveMemory(pPacketContent,pbuf,bufLength);
i=bufLength;
pNext=Packet->Private.Head; // next 是一个mdl

for(;;)
{
pNext=pNext->Next; // next 是一个mdl
if (pNext==NULL) break;
NdisQueryBufferSafe(pNext,&pbuf,&bufLength,32);
NdisMoveMemory(pPacketContent+i,pbuf,bufLength);
i+=bufLength;
}
ASSERT(*pPacketSize == i);
return *pPacketSize;
}

pPacketContent中是完整的以太数据报,下面就是自己想要什么就去什么了。
good good study, day day up。
游客

返回顶部