The ndis " NDIS_PER_PACKET_INFO_FROM_PACKET " docs state that:
“Before completing the send of a large TCP packet that it has segmented
into smaller packets, a miniport driver writes this value with the total
number of user data bytes that it sent in the packets segmented from the
large TCP packet.”
My driver could be a little more efficient if it doesn’t have to
allocate resources before trying to send a 60K packet, and to just
transmit as much as it can until it either finishes and sends
everything, or until it tries to allocate some resource and finds it
can’t. So does the above documentation mean that if I’m handed 60K of
data to send and I can only send 4096 bytes of it, that I can just tell
NDIS how much data I sent and it will be happy? Or does NDIS need to
full data amount written there for validation? I suspect the former but
don’t want to make changes only to find out that my suspicions were
incorrect…
PS doc writers - it would clarify the situation if that sentence was
appended with something like “, which may be less than a full packet in
low resource conditions”, or “, which must always equal the full packet
length” depending on which is the case.
Thanks
James