Jackaroo_lzh
驱动牛犊
驱动牛犊
  • 注册日期2003-10-02
  • 最后登录2004-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1448回复:9

PRSVD的作用?

楼主#
更多 发布于:2003-10-14 21:30
下面是斑竹以前发的帖子里,我对里面的“Resvd =(PRSVD)(MyPacket->MiniportReserved);Resvd->OriginalPkt = NULL;”代码的意思不了解,希望大虾指点一下!

{
Status = NdisAllocateMemory(
&pPacketContent,
2000,
0,
HighestAcceptableAddress);

if (Status != NDIS_STATUS_SUCCESS )
{
DbgPrint(\"ptreceive :ndisallocatememory failed\\n\");
return NDIS_STATUS_NOT_ACCEPTED ;
}

if(pPacketContent == NULL)
{
DbgPrint(\"prreceive:pPacketContent == NULL\\n\");
return NDIS_STATUS_NOT_ACCEPTED ;
}

RtlZeroMemory(pPacketContent, 2000 );

RtlCopyMemory(pPacketContent,HeaderBuffer,HeaderBufferSize);
RtlCopyMemory(pPacketContent+HeaderBufferSize,LookAheadBuffer,LookAheadBufferSize);
PacketLen = PacketSize+HeaderBufferSize;

// DbgPrint(\"Packet Size=%d\\n\",PacketLen);

result = RecvProcess( pAdapt,pPacketContent,&PacketLen);
if( result == PACKET_REFUSE )
{
DbgPrint(\"ptreceive :packet_refuse\\n\");
NdisFreeMemory(pPacketContent,2000,0);
return NDIS_STATUS_NOT_ACCEPTED;
}
NdisDprAllocatePacket(&Status,
&MyPacket,
pAdapt->RecvPacketPoolHandle);

if(Status == NDIS_STATUS_SUCCESS)
{
NdisAllocateBuffer(&Status,&PacketBuffer,pAdapt->RecvBufferPoolHandle,pPacketContent,PacketLen);
NdisChainBufferAtFront( MyPacket, PacketBuffer );
MyPacket->Private.Head->Next=NULL;
MyPacket->Private.Tail=NULL;
Resvd =(PRSVD)(MyPacket->MiniportReserved);
Resvd->OriginalPkt = NULL;
NDIS_SET_PACKET_HEADER_SIZE( MyPacket, HeaderBufferSize );
NdisMIndicateReceivePacket(pAdapt->MiniportHandle, &MyPacket, 1); // 这个函数调用之后ndis就只能调用protocol的ptrecievepacket了。

if ( NDIS_GET_PACKET_STATUS( MyPacket ) != NDIS_STATUS_PENDING )
{
NdisFreeBuffer(PacketBuffer);
NdisFreeMemory(pPacketContent,2000,0);
NdisDprFreePacket(MyPacket);
}
break;
}



Jackaroo_lzh
驱动牛犊
驱动牛犊
  • 注册日期2003-10-02
  • 最后登录2004-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-14 21:34
怎么浏览后直接发表文章,问题分数为0分?一定要退回去才能有分数吗?
Jackaroo_lzh
驱动牛犊
驱动牛犊
  • 注册日期2003-10-02
  • 最后登录2004-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-15 15:20
在\"ndis.h\"头文件里有
Jackaroo_lzh
驱动牛犊
驱动牛犊
  • 注册日期2003-10-02
  • 最后登录2004-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-19 15:47
我装的是Win2k DDK,在目录D:\\NTDDK\\inc\\ddk下
自己直接搜索ndis.h就可以找到了
游客

返回顶部