NDIS_PACKET_EXTENSION (Compact 2013)
3/26/2014
This structure contains an array of pointers, each of which points to or contains per-packet (out-of-band) information associated with a packet descriptor.
Syntax
typedef struct _NDIS_PACKET_EXTENSION {
PVOID NdisPacketInfo[MaxPerPacketInfo];
} NDIS_PACKET_EXTENSION, *PNDIS_PACKET_EXTENSION;
Members
NdisPacketInfo
An array of pointers, each of which points to or contains per-packet information specific to a particular task. The array is indexed by NDIS_PER_PACKET_INFO_FROM_PACKET enumeration values as follows.Value
Description of array element
TcpIpCheckSumPacketInfo
Points to or contains an NDIS_TCP_IP_CHECKSUM_PACKET_INFO structure. This structure specifies per-packet information for checksum operations offloaded from the TCP/IP transport to a NIC.
IpSecPacketInfo
Not supported.
TcpLargeSendPacketInfo
Contains a ULONG value. Before passing a large TCP packet to a NIC for segmentation, the TCP/IP transport sets this value to the maximum segment size (MSS), which is equivalent to the current maximum transmission unit (MTU). The MTU is the maximum number of user data bytes that can be included in a packet. The miniport uses the MSS value to segment the large TCP packet into shorter packets. Before completing the send operation (for example, with NdisMSendComplete), the miniport writes the ULONG value with the total number of user data bytes sent in all packets derived from the large TCP packet.
ClassificationHandlePacketInfo
Reserved.
HeaderIndexInfo
Reserved.
ScatterGatherListPacketInfo
Not supported.
Ieee8021pPriority
Contains a UINT, which specifies 802.1p priority information that is used to establish packet priority in shared-media 802 networks. The bits that are set to 1 in this UINT specify an 802.1p priority value.
Note:Windows Embedded Compact does not support 802.1p packet prioritization.OriginalPacketInfo
Points to an NDIS_PACKET structure. This structure specifies a packet descriptor that contains original information that was previously received over the network and indicated up by the lowest-level driver in a stack of NDIS drivers. Each driver in the layered stack can access the out-of-band (OOB) data block that is associated with the packet that is received from the network without requiring that the packet be copied to each layer.
NdisInternalExtension1
Reserved.
NdisInternalExtension2
Reserved.
Remarks
Every packet descriptor allocated with NdisAllocatePacket has an associated NDIS_PACKET_EXTENSION structure. This structure contains an array of pointers (PVOID), each of which points to or contains a particular type of per-packet information associated with a packet descriptor. Per-packet information is OOB data in addition to that specified by the NDIS_PACKET_OOB_DATA block. The NDIS_PACKET_EXTENSION structure thus extends the OOB data associated with a packet descriptor.
To access per-packet information, drivers use either of the following macros:
- NDIS_PACKET_EXTENSION_FROM_PACKET, which returns a pointer to the NDIS_PACKET_EXTENSION structure. A driver should call this macro if it needs to access more than one type of per-packet information associated with a packet descriptor. After obtaining the pointer to the NDIS_PACKET_EXTENSION structure, the driver can use the appropriate array index to obtain a pointer to a particular type of per-packet information.
- NDIS_PER_PACKET_INFO_FROM_PACKET, which returns a pointer to specified type of per-packet information. A driver should call this macro when it needs to access only a single type of per-packet information.
Requirements
Header |
ndis.h |
See Also
Reference
NDIS 5.x Legacy Structures
NdisMSendComplete
NDIS_PACKET
NdisAllocatePacket
NDIS_PACKET_OOB_DATA
NDIS_PACKET_EXTENSION_FROM_PACKET
NDIS_PER_PACKET_INFO_FROM_PACKET
NDIS_TCP_IP_CHECKSUM_PACKET_INFO