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.
NdisIMCopySendCompletePerPacketInfo copies per-packet information from a packet returned up by a lower miniport driver into a new packet that is to be returned to an upper-level driver.
VOID NdisIMCopySendCompletePerPacketInfo( _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.
When an intermediate driver handles the completion of a send request from a lower miniport driver, that intermediate driver calls NdisIMCopySendCompletePerPacketInfo to copy per-packet information. The intermediate driver copies the per-packet information from a packet that was returned by the lower miniport driver into a new packet that the intermediate driver returns to an upper-level driver. The intermediate driver calls NdisIMCopySendCompletePerPacketInfo for each packet returned 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.
|Not supported for NDIS 6.0 drivers in Windows Vista. Supported for NDIS 5.1 drivers in Windows Vista and Windows XP.|