NDIS_PACKET_EXTENSION (Windows CE 5.0)
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.
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 This is reserved. HeaderIndexInfo This is 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 CE 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 This is reserved. NdisInternalExtension2 This is 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
OS Versions: Windows CE .NET 4.0 and later.
Header: Ndis.h.
See Also
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
Send Feedback on this topic to the authors