阅读:1245回复:2
请教(80分)
我现在在MPSend中得到了封包MyPacket
想把其中的信息保存到pBuff中 不知道下面的代码有没有问题 PNDIS_BUFFER BuffDT; PUCHAR BuffVA,pBuff; UINT BuffLen; PUINT pLength; *pLength=0; BuffLen=0; NdisQueryPacket(MyPacket,NULL,NULL,&BuffDT,NULL); while(BuffDT!=(PNDIS_BUFFER)NULL) { NdisQueryBuffer(BuffDT,&BuffVA,&BuffLen); NdisMoveMemory(pBuff,BuffVA,BuffLen); pBuff=pBuff+BuffLen; *pLength+=BuffLen; NdisGetNextBuffer(BuffDT,&BuffDT); } [编辑 - 5/8/03 by lskxl] |
|
沙发#
发布于:2003-05-08 15:36
我现在在MPSend中得到了封包MyPacket 给你一段代码作参考: UINT CopyPacketData(PNDIS_PACKET pPacket, PCHAR pData, UINT iSize) { UINT iLength=0; UINT iPos=0; PNDIS_BUFFER pNextBuffer=NULL; PCHAR pBuffer=NULL; iPos = 0; NdisQueryPacket( pPacket, NULL, NULL, &pNextBuffer, &iLength ); if( iLength > iSize ) return iPos; while( pNextBuffer ) { NdisQueryBuffer( pNextBuffer, &pBuffer, &iLength ); if( iLength > iSize - iPos || !pBuffer ) break; NdisMoveMemory( pData + iPos, pBuffer, iLength ); NdisGetNextBuffer( pNextBuffer, &pNextBuffer ); iPos += iLength; } return iPos; } 其中pData为你要的包内容。 |
|
|
板凳#
发布于:2003-05-08 15:39
其中iSize可以用:
NdisQueryPacket( pPacket, NULL, NULL, NULL, &iTotal); 得到。 pPacket为你的myPacket. |
|
|