B.6  Streams Transport Provider Upper-edge Translation

The system interface between transport user and transport provider is the TDI. The LAN Manager redirector and server, Windows Sockets, and the NetBIOS interface libraries use TDI. However, most STREAMS stacks use the TPI at their upper edges. STREAMS includes a TDI-TPI mapper so that a STREAMS stack that uses TPI can be accessed by most Windows NT transport users.

The following TPI message structures have been extended in STREAMS. The original definitions are detailed in Further Readings on Streams, References 1 and 4.

struct T_info_ack {

    LONG PRIM_type;

    LONG TSDU_size;

    LONG ETSDU_size;

    LONG CDATA_size;

    LONG DDATA_size;

    LONG ADDR_size;

    LONG OPT_size;

    LONG TIDU_size;

    LONG SERV_type;

    LONG CURRENT_state;

                             // Windows NT Extensions:

    LONG ADDR_length;        // current transport address of this stream

    UCHAR UNIQUE_addr[6];    // unique address for this host

};

 

struct T_discon_ind {

    LONG PRIM_type;

    LONG DISCON_reason;      // may be an NTSTATUS code

    LONG SEQ_number;

};

 

struct T_error_ack {

    LONG PRIM_type;

    LONG ERROR_prim;

    LONG TLI_error;          // if TLI_error == TNTERROR,

    LONG UNIX_error;         // then UNIX_error is an NTSTATUS value

};