Поделиться через


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.

    Ee481494.note(en-us,WinEmbedded.80).gifNote:
    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