File:  [WindowsNT SDKs] / ntddk / src / network / streams / inc / sys / tihdr.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 18:31:12 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: ntddk-nov-1993, HEAD
Microsoft Windows NT Build 511 (DDK SDK) 11-01-1993

/*++

Copyright (c) 1991  Microsoft Corporation

Module Name:

    tihdr.h

Abstract:

    Reverse Engineered Header for TPI.

Author:

    sampa

Revision History:

--*/

#ifndef SYS_TIHDR_INCLUDED
#define SYS_TIHDR_INCLUDED


//
// Primitive Types
//

#define T_CONN_REQ      0
#define T_CONN_RES      1
#define T_DISCON_REQ    2
#define T_DATA_REQ      3
#define T_EXDATA_REQ    4
#define T_INFO_REQ      5
#define T_BIND_REQ      6
#define T_UNBIND_REQ    7
#define T_UNITDATA_REQ  8
#define T_OPTMGMT_REQ   9
#define T_ORDREL_REQ    10

#define T_CONN_IND      11
#define T_CONN_CON      12
#define T_DISCON_IND    13
#define T_DATA_IND      14
#define T_EXDATA_IND    15
#define T_INFO_ACK      16
#define T_BIND_ACK      17
#define T_ERROR_ACK     18
#define T_OK_ACK        19
#define T_UNITDATA_IND  20
#define T_UDERROR_IND   21
#define T_OPTMGMT_ACK   22
#define T_ORDREL_IND    23
#define T_ASTAT_REQ     24
#define T_ASTAT_RES     25
#define T_SETSHDPUT_REQ 26
#define T_CONN_RES_ACK  27
#define T_CONN_RES_NACK 28


//
// Initialization Events
//

#define TE_BIND_REQ     0
#define TE_UNBIND_REQ   1
#define TE_OPTMGMT_REQ  2
#define TE_BIND_ACK     3
#define TE_OPTMGMT_ACK  4
#define TE_ERROR_ACK    5
#define TE_OK_ACK1      6
#define TE_OK_ACK2      7
#define TE_OK_ACK3      8
#define TE_OK_ACK4      9

//
// Connection Oriented Events
//

#define TE_CONN_REQ     10
#define TE_CONN_RES     11
#define TE_DISCON_REQ   12
#define TE_DATA_REQ     13
#define TE_EXDATA_REQ   14
#define TE_ORDREL_REQ   15
#define TE_CONN_IND     16
#define TE_CONN_CON     17
#define TE_DATA_IND     18
#define TE_EXDATA_IND   19
#define TE_ORDREL_IND   20
#define TE_DISCON_IND1  21
#define TE_DISCON_IND2  22
#define TE_DISCON_IND3  23
#define TE_PASS_CONN    24

//
// Connectionless events
//

#define TE_UNITDATA_REQ 25
#define TE_UNITDATA_IND 26
#define TE_UDERROR_IND  27

#define TE_NOEVENTS     28

//
// States
//

#define TS_UNBND        0
#define TS_WACK_BREQ    1
#define TS_WACK_UREQ    2
#define TS_IDLE         3
#define TS_WACK_OPTREQ  4
#define TS_WACK_CREQ    5
#define TS_WCON_CREQ    6
#define TS_WRES_CIND    7
#define TS_WACK_CRES    8
#define TS_DATA_XFER    9
#define TS_WIND_ORDREL  10
#define TS_WREQ_ORDREL  11
#define TS_WACK_DREQ6   12
#define TS_WACK_DREQ7   13
#define TS_WACK_DREQ9   14
#define TS_WACK_DREQ10  15
#define TS_WACK_DREQ11  16

#define TS_NOSTATES     17


//
// Structure Definitions for M_PROTO Messages
//

struct T_unitdata_req {
        long    PRIM_type;                      // T_UNITDATA_REQ
        long    DEST_length;
        long    DEST_offset;
        long    OPT_length;
        long    OPT_offset;
};

struct T_uderror_ind {
        long    PRIM_type;                      // T_UDERROR_IND
        long    DEST_length;
        long    DEST_offset;
        long    OPT_length;
        long    OPT_offset;
        long    ERROR_type;
};

struct T_unitdata_ind {
        long    PRIM_type;                      // T_UNITDATA_IND
        long    SRC_length;
        long    SRC_offset;
        long    OPT_length;
        long    OPT_offset;
};

struct T_optmgmt_ack {
        long    PRIM_type;                      // T_OPTMGMT_ACK
        long    MGMT_flags;
        long    OPT_length;
        long    OPT_offset;
};

struct T_discon_ind {
        long    PRIM_type;                      // T_DISCON_IND
        long    DISCON_reason;                  //   this is an NTSTATUS
        long    SEQ_number;
};

struct T_ordrel_ind {
        long    PRIM_type;                      // T_ORDREL_IND
};

struct T_conn_con {
        long    PRIM_type;                      // T_CONN_CON
        long    RES_length;
        long    RES_offset;
        long    OPT_length;
        long    OPT_offset;
};

struct T_conn_ind {
        long    PRIM_type;                      // T_CONN_IND
        long    SRC_length;
        long    SRC_offset;
        long    OPT_length;
        long    OPT_offset;
        long    SEQ_number;
};

struct T_data_ind {
        long    PRIM_type;                      // T_DATA_IND
        long    MORE_flag;
        long    reserved;
};

struct T_exdata_ind {
        long    PRIM_type;                      // T_EXDATA_IND
        long    MORE_flag;
        long    reserved;
};

struct T_info_req {
        long    PRIM_type;                      // T_INFO_REQ
};

struct T_bind_req {
        long    PRIM_type;                      // T_BIND_REQ
        long    ADDR_length;
        long    ADDR_offset;
        long    CONIND_number;
};

struct T_conn_req {
        long    PRIM_type;                      // T_CONN_REQ
        long    DEST_length;
        long    DEST_offset;
        long    OPT_length;
        long    OPT_offset;
};

struct T_conn_res {
        long    PRIM_type;                      // T_CONN_RES
        queue_t *QUEUE_ptr;
        long    SEQ_number;
        long    OPT_length;
        long    OPT_offset;
};

struct T_conn_res_ack {
        long    PRIM_type;                      // T_CONN_RES_ACK
        long    SEQ_number;
};

struct T_conn_res_nack {
        long    PRIM_type;                      // T_CONN_RES_NACK
        long    SEQ_number;
        long    TLI_error;                      // TNTERROR signifies that
        long    UNIX_error;                     //   this is an NTSTATUS
};

struct T_data_req {
        long    PRIM_type;                      // T_DATA_REQ
        long    MORE_flag;
        long    SEND_flags;
};

struct T_exdata_req {
        long    PRIM_type;                      // T_EXDATA_REQ
        long    MORE_flag;
        long    SEND_flags;
};

struct T_discon_req {
        long    PRIM_type;                      // T_DISCON_REQ
        long    SEQ_number;
};

struct T_ordrel_req {
        long    PRIM_type;                      // T_ORDREL_REQ
};

struct T_optmgmt_req {
        long    PRIM_type;                      // T_OPTMGMT_REQ
        long    MGMT_flags;
        long    OPT_length;
        long    OPT_offset;
};

struct T_setshdput_req {
        long    PRIM_type;                      // T_SETSHDPUT_REQ
        int     *SHDPUT_func;
};

struct T_info_ack {
        long    PRIM_type;                      // T_INFO_ACK
        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;
                                                // Microsoft Extensions:
        long    ADDR_length;                    // current transport address
        long    ADDR_offset;                    //   of this stream
        long    ThroughPut;                     // ThroughPut in Kbytes/second
                                                // 0 if not available
        long    Delay;                          // Delay on sending a packet
                                                // 0 if not available
        long    Reliable;                       // 1 if the connection is
                                                // reliable.
                                                // 0 if not.
        unsigned char UNIQUE_addr[6];           // unique address for this host
};

struct T_bind_ack {
        long    PRIM_type;                      // T_BIND_ACK
        long    ADDR_length;
        long    ADDR_offset;
        long    CONIND_number;
};

struct T_error_ack {
        long    PRIM_type;                      // T_ERROR_ACK
        long    ERROR_prim;
        long    TLI_error;                      // TNTERROR signifies that
        long    UNIX_error;                     //   this is an NTSTATUS
};

struct T_ok_ack {
        long    PRIM_type;                      // T_OK_ACK
        long    CORRECT_prim;
};

struct T_unbind_req {
        long    PRIM_type;                      // T_UNBIND_REQ
};

struct T_astat_req {
        long    PRIM_type;                      // T_ASTAT_REQ
        long    ADDR_length;
        long    ADDR_offset;
};

struct T_astat_res {
        long    PRIM_type;                      // T_ASTAT_RES
};

union T_primitives {
        long                    type;
        struct T_unitdata_req   t_unitdata_req;
        struct T_uderror_ind    t_uderror_ind;
        struct T_unitdata_ind   t_unitdata_ind;
        struct T_optmgmt_ack    t_optmgmt_ack;
        struct T_discon_ind       t_discon_ind;
        struct T_ordrel_ind     t_ordrel_ind;
        struct T_conn_con       t_conn_con;
        struct T_conn_ind       t_conn_ind;
        struct T_data_ind       t_data_ind;
        struct T_exdata_ind     t_exdata_ind;
        struct T_info_req       t_info_req;
        struct T_bind_req       t_bind_req;
        struct T_conn_req       t_conn_req;
        struct T_conn_res       t_conn_res;
        struct T_conn_res_ack   t_conn_res_ack;
        struct T_conn_res_nack  t_conn_res_nack;
        struct T_data_req       t_data_req;
        struct T_exdata_req     t_exdata_req;
        struct T_discon_req     t_discon_req;
        struct T_ordrel_req     t_ordrel_req;
        struct T_optmgmt_req    t_optmgmt_req;
        struct T_info_ack       t_info_ack;
        struct T_bind_ack       t_bind_ack;
        struct T_error_ack      t_error_ack;
        struct T_ok_ack         t_ok_ack;
        struct T_unbind_req     t_unbind_req;
};


#define unitdata_req            t_unitdata_req
#define uderror_ind             t_uderror_ind
#define unitdata_ind            t_unitdata_ind
#define optmgm_ack              t_optmgmt_ack
#define discon_ind              t_discon_ind
#define ordrel_ind              t_ordrel_ind
#define conn_con                t_conn_con
#define conn_ind                t_conn_ind
#define data_ind                t_data_ind
#define exdata_ind              t_exdata_ind
#define info_req                t_info_req
#define bind_req                t_bind_req
#define conn_req                t_conn_req
#define conn_res                t_conn_res
#define data_req                t_data_req
#define exdata_req              t_exdata_req
#define discon_req              t_discon_req
#define ordrel_req              t_ordrel_req
#define optmgm_req              t_optmgmt_req
#define info_ack                t_info_ack
#define bind_ack                t_bind_ack
#define error_ack               t_error_ack
#define ok_ack                  t_ok_ack
#define unbind_req              t_unbind_req



#endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.