winghhh
驱动牛犊
驱动牛犊
  • 注册日期2007-04-24
  • 最后登录2007-05-12
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1499回复:4

请问DDK中的例子passthru中的PtReceive函数应该怎样去修改成可以显示数据包内容?

楼主#
更多 发布于:2007-04-25 21:57
  我在网上找到那么一段代码,它说是在PtReceive中修改的,
PUCHAR pPacketContent;
PUCHAR pBuf;
UINT BufLength;
MDL *pNext;
UINT i;

-------------------------------------------------------------------

NdisQueryPacket(Packet,NULL,NULL,NULL,&PacketSize);
        Status=NdisAllocateMemory(&pPacketContent,2000,0,HighestAcceptableMax);
        if(Status!=NDIS_STATUS_SUCCESS)
            return Status;
        NdisZeroMemory(pPacketContent,2000);
        NdisQueryBufferSafe(Packet->Private.Head,&pBuf,&BufLength,32);
        NdisMoveMemory(pPacketContent,pBuf,BufLength);
        i=BufLength;
        pNext=Packet->Private.Head;
        for(;;)
        {
            if(pNext==Packet->Private.Tail)
                break;
            pNext=pNext->Next;
            if(pNext==NULL)
                break;
            NdisQueryBufferSafe(pNext,&pBuf,&BufLength,32);
            NdisMoveMemory(pPacketContent+i,pBuf,BufLength);
            i+=BufLength;
        }




代码就是这样,我用的是windows2003 server,但我把它加到PtReceive函数中,加载驱动时就会蓝屏,请问应加到哪里才正确?
cyliu
论坛版主
论坛版主
  • 注册日期2003-06-13
  • 最后登录2014-04-11
  • 粉丝5
  • 关注0
  • 积分1238分
  • 威望2531点
  • 贡献值0点
  • 好评度577点
  • 原创分14分
  • 专家分10分
沙发#
发布于:2007-04-26 08:49
考虑释放空间问题了吗?重要是找到错误出在哪里
走走看看开源好 Solaris vs Linux
dfbb1980
驱动牛犊
驱动牛犊
  • 注册日期2006-07-05
  • 最后登录2007-07-30
  • 粉丝0
  • 关注0
  • 积分820分
  • 威望83点
  • 贡献值0点
  • 好评度82点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-04-26 12:16
用ndis自带的库函数来查阅包比较好
winghhh
驱动牛犊
驱动牛犊
  • 注册日期2007-04-24
  • 最后登录2007-05-12
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-04-26 13:52
引用第2楼dfbb19802007-04-26 12:16发表的“”:
用ndis自带的库函数来查阅包比较好

可以举个例子吗?具体是什么函数?我最终是要把数据包显示为
FF FF FF FF FF FF 05 18 22 44 12 4E.......这种形式的
swordkiller
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2011-03-02
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度36点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-04-27 11:04
用ndisgetnextbuffer 不要直接用Packet->Private.Head 和 Packet->Private.Tail
游客

返回顶部