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 |