NdisGetFirstBufferFromPacket
This function returns pointers to the buffer descriptor and base virtual address for the initial buffer chained to a specified packet descriptor, along with the sizes of the initial buffer and total buffer in case the buffer is fragmented.
At a Glance
Header file: |
Ndis.h |
Windows CE versions: |
2.0 and later |
Syntax
VOID NdisGetFirstBufferFromPacket( IN PNDIS_PACKET _Packet,
OUT PNDIS_BUFFER *_FirstBuffer, OUT PVOID *_FirstBufferVA,
OUT PUINT FirstBufferLength, OUT PUINT _TotalBufferLength );
Parameters
- Packet
- Pointer to the packet descriptor from which this function extracts information about the initial buffer.
- FirstBuffer
- Pointer to a caller-supplied variable in which this function returns the address of the initial buffer descriptor chained to the given packet descriptor.
- FirstBufferVA
- Pointer to a caller-supplied variable in which this function returns the base virtual address of the initial buffer associated with the packet.
- FirstBufferLength
- Pointer to a caller-supplied variable in which this function returns the number of bytes mapped by the initial buffer descriptor chained to the packet descriptor.
- TotalBufferLength
- Pointer to a caller-supplied variable in which this function returns the total number of bytes mapped by all buffer descriptors chained to the packet descriptor.
Remarks
Drivers use this function to get information about the initial buffer and the amount of data associated with a specified packet faster than they can by making calls the NdisQueryPacket function, and then the NdisQueryBuffer function.
A driver that calls this function runs at IRQL <= DISPATCH_LEVEL.
See Also
NdisGetNextBuffer, NdisQueryBuffer