TDI_SEND_DATAGRAM

Operation

TDI_SEND_DATAGRAM is a request message a client issues to indicate a send datagram request for Transport Service Data Unit (TSDU) called a “datagram.”

Note TdiBuildSendDatagram is the macro a client uses to fill in the IRP.

Because TDI does not fragment datagrams, the client makes one send datagram request to send one datagram, which is associated only with the particular request for connectionless data transfer. The client specifies a buffer containing the datagram, with any buffer size up to the maximum size the TDI driver allows. The client can determine the maximum size by making a query information request.

If the driver allows it, the client can send a zero-length datagram or direct a datagram to a multicast or broadcast address. The syntax of the multicast or broadcast address is driver-specific. The client can obtain the broadcast address in a query information request.

Note A datagram send is unreliable, and the driver can lose or duplicate a datagram.

After the client send datagram request has been received at the driver, an internal driver send datagram function queues the request. Then the function processes the requests in the order received. It processes these requests separately from send requests.

Along with the request message, the TDI client must provide input and output buffers for the IRP, as well as a status block structure the driver uses to write information about the request. These items are described below. For more information about the members of the IRP related to a send datagram request, see TdiBuildSendDatagram.

Input

TDI_CONNECTION_INFORMATION structure

Output

None

I/O Status Block

The driver fills in the Status member of the IRP with one of the following TDI status codes:

STATUS_INSUFFICIENT_RESOURCES
STATUS_INVALID_CONNECTION
STATUS_INVALID_PARAMETER
STATUS_PENDING

For more information about status codes, see Part II, Chapter 10.

The Information member of the IRP contains the number of data bytes the internal driver send datagram function writes to the network.

See Also

TDI_CONNECTION_INFORMATION, TdiBuildSendDatagram