RtndTransmit

RtndTransmit is called when the stack requires that the driver transmit a packet (pointed to by the parameter mp). The packet is in a structure format required by the RtxTcpIp Stack, which the driver does not need to know. The driver should use the RtnDecodePacket routine to obtain the network device (ndp), data pointer and data length for the packet.

Syntax

int RtndTransmit(
    void *mp
);

Parameters

mp

Pointer to a Packet to transmit

Return Value

A return value of 0 indicates Success, -1 indicates Failure.

Process Context

RtndTransmit is not called from a pre-determined process context. Do NOT use RTX64 handles in this routine.

Remarks

Once a driver is done with a packet, either the packet is finished transmitting or the data in the packet has been copied to a driver specific transmit buffer, the driver should call RtnTransmitDone. This call may be made from either the RtndTransmit routine or from a driver specific Transmit thread in response to a transmit done interrupt. A new packet will not be handed to a given instance of a driver until RtnTransmitDone is called for a given packet. If a driver is capable of queuing multiple packets for transmit, then RtnTransmitDone can be called safely from the RtndTransmit routine. If the driver requires that a packet be transmitted completely before receiving a new packet in RtndTransmit, then RtnTransmitDone should be called from a Transmit thread in response to a transmit done interrupt.

Requirements

Minimum Supported Version RTX64 2013
Header RtnApi.h
Library RtTcpip.lib