困惑,得不到数据包协议类型

lisheng053758   2008-6-21 14:44 楼主
Packet = PacketArray;
        NdisQueryPacket(Packet,NULL,&BufLength,&pBuffer,&PacketSize);
        if(!BufLength)
            DBGPRINT(("==Packet Query Failed"));

        // 分配缓冲区pPacketContent
        Status = NdisAllocateMemoryWithTag((PVOID *)&pPacketContent, PacketSize, 'maDN');
        if (Status!=NDIS_STATUS_SUCCESS )
            DBGPRINT(("==Memory Allocate Failed"));

        // 读取所有数据到pPacketContent
        NdisZeroMemory (pPacketContent, PacketSize);
        NdisAllocateBuffer(&Status,
            &pBuffer,
            pAdapt->SendPacketPoolHandle,
            pPacketContent,
            BufLength );
        NdisQueryBuffer(pBuffer, &CurrentBufferVA, &CurrentBufferLength);

        while(pBuffer != NULL)
        {
            NdisMoveMemory(pPacketContent+tempBuL, CurrentBufferVA, CurrentBufferLength);
            tempBuL += CurrentBufferLength;
            NdisGetNextBuffer(pBuffer, &pBuffer);
            if(pBuffer == NULL)
                break;
            NdisQueryBuffer(pBuffer, &CurrentBufferVA, &CurrentBufferLength);
        }

        DBGPRINT(("==>pPacketContent:%x\n",pPacketContent[23]));
这段代码在MPSendPackets函数里,pPacketContent[23]用来得到协议类型,为什么值总为0?

回复评论 (3)

什么平台?什么环境?做应用还是驱动?
点赞  2008-6-21 20:28
xp sp2 做驱动
点赞  2008-6-21 22:33
用DEBUG模式看过吗?是否真的得到了正确的数据包?
点赞  2008-6-22 22:29
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复