I copy the header and any lookahead data into the packet during my
ProtocolReceive function. If I have a partial packet, I call
NdisTransferData to receive the rest of the packet. I know that I need
to the ByteOffset value LookaheadBufferSize + 1. It seems like I need to
tell the function not to overwrite that data I have already copied into the
packet when I call NdisTransferData. However, there is no offset into the
packet that I can specify in the call. How do you tell the underlying
miniport to start at an offset for the rest of the packet’s data?
Thanks,
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
NdisTransferData is somewhat brain-dead.
The offset argument specified the offset in the original where “copying”
should start. Unfortunately, the destination offset for the copy is always
zero(0).
You need to be creative here.The packet that you pass to NdisTransferData
must be organized so that the first chained buffer is for the VM that will
be written with the residual data that is transfered. One approach is to
chain the buffer that is to contain this residual data to the front of the
packet; then, when the transfer is complete, unchain it and chain it again
at the end.
Another approach would be to stash the header buffer and lookahead buffer
data somewhere private, then chain this data to the front later.
There are other variations as well.
In any case, it is tedious.
Good luck,
Thomas F. Divine
PCAUSA - Toolkits & Resources For Network Software Developers
NDIS Protocol - NDIS Intermediate - TDI Client/Filter
http: - http:
----- Original Message -----
From:
To: “NT Developers Interest List”
Sent: Monday, October 29, 2001 12:45 PM
Subject: [ntdev] NdisTransferData Function Question
> I copy the header and any lookahead data into the packet during my
> ProtocolReceive function. If I have a partial packet, I call
> NdisTransferData to receive the rest of the packet. I know that I need
> to the ByteOffset value LookaheadBufferSize + 1. It seems like I need to
> tell the function not to overwrite that data I have already copied into
the
> packet when I call NdisTransferData. However, there is no offset into the
> packet that I can specify in the call. How do you tell the underlying
> miniport to start at an offset for the rest of the packet’s data?
>
> Thanks,
> - Dan
>
—
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com</http:></http:>