Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef _IPXRTDEF_
      7 #define _IPXRTDEF_
      8 
      9 #include <ipxconst.h>
     10 #include <ipxsap.h>
     11 #include <ipxrip.h>
     12 #include <stm.h>
     13 #include <ipxtfflt.h>
     14 
     15 #define IPX_ROUTER_VERSION_1 RTR_INFO_BLOCK_VERSION
     16 
     17 #define IPX_PROTOCOL_LOCAL 1
     18 #define IPX_PROTOCOL_STATIC 2
     19 
     20 #define IF_TYPE_OTHER 1
     21 #define IF_TYPE_LAN 2
     22 #define IF_TYPE_WAN_ROUTER 3
     23 #define IF_TYPE_WAN_WORKSTATION 4
     24 #define IF_TYPE_INTERNAL 5
     25 #define IF_TYPE_PERSONAL_WAN_ROUTER 6
     26 #define IF_TYPE_ROUTER_WORKSTATION_DIALOUT 7
     27 #define IF_TYPE_STANDALONE_WORKSTATION_DIALOUT 8
     28 
     29 #define IPX_INTERFACE_INFO_TYPE 1
     30 #define IPX_STATIC_ROUTE_INFO_TYPE 2
     31 #define IPX_STATIC_SERVICE_INFO_TYPE 3
     32 #define IPX_SERVICE_FILTER_INFO_TYPE 4
     33 #define IPX_ROUTE_FILTER_INFO_TYPE 5
     34 #define IPX_IN_TRAFFIC_FILTER_INFO_TYPE 6
     35 #define IPX_ADAPTER_INFO_TYPE 7
     36 #define IPXWAN_INTERFACE_INFO_TYPE 8
     37 #define IPX_GLOBAL_INFO_TYPE 9
     38 #define IPX_STATIC_NETBIOS_NAME_INFO_TYPE 10
     39 #define IPX_IN_TRAFFIC_FILTER_GLOBAL_INFO_TYPE 11
     40 #define IPX_OUT_TRAFFIC_FILTER_INFO_TYPE 12
     41 #define IPX_OUT_TRAFFIC_FILTER_GLOBAL_INFO_TYPE 13
     42 
     43 #define IPX_SMALL_ROUTING_TABLE_HASH_SIZE 31
     44 #define IPX_MEDIUM_ROUTING_TABLE_HASH_SIZE 257
     45 #define IPX_LARGE_ROUTING_TABLE_HASH_SIZE 2047
     46 
     47 typedef struct _IPX_GLOBAL_INFO {
     48   ULONG RoutingTableHashSize;
     49   ULONG EventLogMask;
     50 } IPX_GLOBAL_INFO,*PIPX_GLOBAL_INFO;
     51 
     52 typedef struct _IPX_IF_INFO {
     53   ULONG AdminState;
     54   ULONG NetbiosAccept;
     55   ULONG NetbiosDeliver;
     56 } IPX_IF_INFO,*PIPX_IF_INFO;
     57 
     58 #define IPX_DEDICATED_LINK 1
     59 #define IPX_DIALED_LINK 2
     60 
     61 typedef struct _IPXWAN_IF_INFO {
     62   ULONG AdminState;
     63 } IPXWAN_IF_INFO,*PIPXWAN_IF_INFO;
     64 
     65 typedef struct _IPX_STATIC_ROUTE_INFO {
     66   __C89_NAMELESS union {
     67     ULONG DwordAlign;
     68     UCHAR Network[4];
     69   };
     70   USHORT TickCount;
     71   USHORT HopCount;
     72   UCHAR NextHopMacAddress[6];
     73 } IPX_STATIC_ROUTE_INFO,*PIPX_STATIC_ROUTE_INFO;
     74 
     75 typedef IPX_SERVER_ENTRY IPX_STATIC_SERVICE_INFO,*PIPX_STATIC_SERVICE_INFO;
     76 
     77 typedef struct _IPX_STATIC_NETBIOS_NAME_INFO {
     78   __C89_NAMELESS union {
     79     ULONG DwordAlign;
     80     UCHAR Name[16];
     81   };
     82 } IPX_STATIC_NETBIOS_NAME_INFO,*PIPX_STATIC_NETBIOS_NAME_INFO;
     83 
     84 #define MAX_ADAPTER_NAME_LEN 48
     85 
     86 typedef struct _IPX_ADAPTER_INFO {
     87   ULONG PacketType;
     88   WCHAR AdapterName[MAX_ADAPTER_NAME_LEN];
     89 } IPX_ADAPTER_INFO,*PIPX_ADAPTER_INFO;
     90 
     91 #define AUTO_DETECT_PACKET_TYPE 0xFFFFFFFF
     92 
     93 #define IPX_BASE_ENTRY 0
     94 #define IPX_INTERFACE_TABLE 1
     95 #define IPX_DEST_TABLE 2
     96 #define IPX_STATIC_ROUTE_TABLE 3
     97 #define IPX_SERV_TABLE 4
     98 #define IPX_STATIC_SERV_TABLE 5
     99 
    100 #define MAX_IPX_MIB_TABLES 6
    101 
    102 #define IPX_INTERFACE_ANSI_NAME_LEN 48
    103 
    104 typedef struct _IF_TABLE_INDEX {
    105   ULONG InterfaceIndex;
    106 } IF_TABLE_INDEX,*PIF_TABLE_INDEX;
    107 
    108 typedef struct _ROUTING_TABLE_INDEX {
    109   UCHAR Network[4];
    110 } ROUTING_TABLE_INDEX,*PROUTING_TABLE_INDEX;
    111 
    112 typedef struct _STATIC_ROUTES_TABLE_INDEX {
    113   ULONG InterfaceIndex;
    114   UCHAR Network[4];
    115 } STATIC_ROUTES_TABLE_INDEX,*PSTATIC_ROUTES_TABLE_INDEX;
    116 
    117 typedef struct _SERVICES_TABLE_INDEX {
    118   USHORT ServiceType;
    119   UCHAR ServiceName[48];
    120 } SERVICES_TABLE_INDEX,*PSERVICES_TABLE_INDEX;
    121 
    122 typedef struct _STATIC_SERVICES_TABLE_INDEX {
    123   ULONG InterfaceIndex;
    124   USHORT ServiceType;
    125   UCHAR ServiceName[48];
    126 } STATIC_SERVICES_TABLE_INDEX,*PSTATIC_SERVICES_TABLE_INDEX;
    127 
    128 typedef union _IPX_MIB_INDEX {
    129   IF_TABLE_INDEX InterfaceTableIndex;
    130   ROUTING_TABLE_INDEX RoutingTableIndex;
    131   STATIC_ROUTES_TABLE_INDEX StaticRoutesTableIndex;
    132   SERVICES_TABLE_INDEX ServicesTableIndex;
    133   STATIC_SERVICES_TABLE_INDEX StaticServicesTableIndex;
    134 } IPX_MIB_INDEX,*PIPX_MIB_INDEX;
    135 
    136 typedef struct _IPX_MIB_GET_INPUT_DATA {
    137   ULONG TableId;
    138   IPX_MIB_INDEX MibIndex;
    139 } IPX_MIB_GET_INPUT_DATA,*PIPX_MIB_GET_INPUT_DATA;
    140 
    141 typedef struct _IPXMIB_BASE {
    142   ULONG OperState;
    143   UCHAR PrimaryNetNumber[4];
    144   UCHAR Node[6];
    145   UCHAR SysName[IPX_INTERFACE_ANSI_NAME_LEN];
    146   ULONG MaxPathSplits;
    147   ULONG IfCount;
    148   ULONG DestCount;
    149   ULONG ServCount;
    150 } IPXMIB_BASE,*PIPXMIB_BASE;
    151 
    152 typedef struct _IPX_IF_STATS {
    153   ULONG IfOperState;
    154   ULONG MaxPacketSize;
    155   ULONG InHdrErrors;
    156   ULONG InFiltered;
    157   ULONG InNoRoutes;
    158   ULONG InDiscards;
    159   ULONG InDelivers;
    160   ULONG OutFiltered;
    161   ULONG OutDiscards;
    162   ULONG OutDelivers;
    163   ULONG NetbiosReceived;
    164   ULONG NetbiosSent;
    165 } IPX_IF_STATS,*PIPX_IF_STATS;
    166 
    167 typedef struct _IPX_INTERFACE {
    168   ULONG InterfaceIndex;
    169   ULONG AdminState;
    170   ULONG AdapterIndex;
    171   UCHAR InterfaceName[IPX_INTERFACE_ANSI_NAME_LEN];
    172   ULONG InterfaceType;
    173   ULONG MediaType;
    174   UCHAR NetNumber[4];
    175   UCHAR MacAddress[6];
    176   ULONG Delay;
    177   ULONG Throughput;
    178   ULONG NetbiosAccept;
    179   ULONG NetbiosDeliver;
    180   ULONG EnableIpxWanNegotiation;
    181   IPX_IF_STATS IfStats;
    182 } IPX_INTERFACE,*PIPX_INTERFACE;
    183 
    184 typedef struct _IPX_ROUTE {
    185   ULONG InterfaceIndex;
    186   ULONG Protocol;
    187   UCHAR Network[4];
    188   USHORT TickCount;
    189   USHORT HopCount;
    190   UCHAR NextHopMacAddress[6];
    191   ULONG Flags;
    192 } IPX_ROUTE,*PIPX_ROUTE;
    193 
    194 typedef union _IPX_MIB_ROW {
    195   IPX_INTERFACE Interface;
    196   IPX_ROUTE Route;
    197   IPX_SERVICE Service;
    198 } IPX_MIB_ROW,*PIPX_MIB_ROW;
    199 
    200 typedef struct _IPX_MIB_SET_INPUT_DATA {
    201   ULONG TableId;
    202   IPX_MIB_ROW MibRow;
    203 } IPX_MIB_SET_INPUT_DATA,*PIPX_MIB_SET_INPUT_DATA;
    204 #endif
    205