VOID
NdisGetFirstBufferFromPacket(
IN PNDIS_PACKET _Packet,
OUT PNDIS_BUFFER *_FirstBuffer,
OUT PVOID *_FirstBufferVA,
OUT PUINT _FirstBufferLength,
OUT PUINT _TotalBufferLength
);
NdisGetFirstBufferFromPacket returns pointers to the buffer descriptor and base virtual address for the initial buffer chained to a given packet descriptor, along with the sizes of the initial buffer and total buffer in case the buffer is fragmented.
Drivers use this macro to get information about the initial buffer and amount of data associated with a given packet faster than they can by making calls to NdisQueryPacket and, then, NdisQueryBuffer.
Callers of NdisGetFirstBufferFromPacket run at IRQL <= DISPATCH_LEVEL.
MiniportSend, MiniportSendPackets, NdisGetNextBuffer, NDIS_PACKET, NdisQueryBuffer, NdisQueryPacket, ProtocolReceivePacket