撑不住了,搞了两天了,passthru的ptreceive的LookAheadBuffer中取得IP头数据是对的,但TCP头怎么不对??我的代码:NDIS_STATUSPtReceive( IN NDIS_HANDLE ProtocolBind...
全文
回复(8) 2008-05-19 21:36 来自版块 - NDIS网络接口开发
表情
diaowubinNdisQueryPacket( Packet, NULL, NULL, &firstBuffer, &totalLength ); j = 0; while( firstBuffer != NULL ) { j ++; ...(2008-05-22 22:09)
cyliu数据不再同一片上,需要遍历packet的里面的buffer(不是数据阿)数据片联表。你这样直接+数据,谁知道你读的数据是什么了。 似乎有什么NdisNextbuffer之类接口,好久了不写windows code了,忘记了。你可以从ndis的数据格式的api里面找到答案。(2008-05-22 12:40)
diaowubin我已经改成这样了: pTCPHdr = ( PTCPHeader )( (char*)pIPHdr + (pIPHdr->iphVerLen & 0xf) * 4 ); 但取到的源端口和目的端口都是很大的值,怎么回事? 还真是不知道错在哪? 驱动网的大小牛们都...(2008-05-21 14:55)
65551494pTCPHdr = ( PTCPHeader )( (char*)pIPHdr + sizeof(IPHeader) ); 如果IP头有可选头的话,这样定位就有问题了。。。 UCHAR iphVerLen; // 版本号和头长度(各占4位) (iphVerLen...(2008-05-21 14:13)
lgr98ip头取到了,ip头中的协议类型是tcp, 那ip头加上ip头的长度不就是tcp头吗?我这样取是可以取到的呀!!(ip头长度的单位是4字节的)(2008-05-20 22:55)
diaowubinlgr98,我也用过你这种方法了,取到的数据和我这个方法是一样的,难道是我TCP头位置截错了?不可能的呀(2008-05-20 10:11)
lgr98取不到吗?没有试过你这种,你可以试试 NdisQueryPacket(packet, NULL, NULL, &ndisBuffer, &totalLen); while (NULL != ndisBuffer) { Ndi...(2008-05-20 06:52)
eleqi不懂,学习中,帮顶一下(2008-05-19 22:48)

返回顶部