This documentation is archived and is not being maintained.

NdisIMCopySendPerPacketInfo function

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

NdisIMCopySendPerPacketInfo copies per-packet information from a packet that was sent down by an upper-level driver into a new packet to be sent down to a lower miniport driver.


VOID NdisIMCopySendPerPacketInfo(
  _Out_ PNDIS_PACKET DstPacket,
  _In_  PNDIS_PACKET SrcPacket


DstPacket [out]

Pointer to the destination packet descriptor in which per-packet information is to be copied.

SrcPacket [in]

Pointer to the source packet descriptor from which per-packet information is copied.

Return value



When an intermediate driver forwards a send request from an upper-level driver to a lower miniport driver, that intermediate driver calls NdisIMCopySendPerPacketInfo to copy per-packet information. The intermediate driver copies the per-packet information from a packet sent down by the upper-level driver into a new packet that the intermediate driver sends down to the lower miniport driver. The intermediate driver calls NdisIMCopySendPerPacketInfo for each packet sent down through the stack unless the intermediate driver must modify a packet's per-packet information.

Per-packet information is contained in an NDIS_PACKET_EXTENSION structure and includes, for example, checksum information, Internet Protocol security information, and 802.1p priority information.

If an intermediate driver must modify a packet's per-packet information, that intermediate driver should use the NDIS_PER_PACKET_INFO_FROM_PACKET macro to accesses the information. The driver can call this macro once for each type of per-packet information that it needs to access.

Drivers can also use the NDIS_PACKET_EXTENSION_FROM_PACKET macro, which returns a pointer to the NDIS_PACKET_EXTENSION structure. A driver can 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.

To copy a range of data from one packet to another, use the NdisCopyFromPacketToPacket function.


Target platform



Not supported for NDIS 6.0 drivers in Windows Vista. Supported for NDIS 5.1 drivers in Windows Vista and Windows XP.


Ndis.h (include Ndis.h)




Any level

See also




Send comments about this topic to Microsoft