master
  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
 47typedef struct _IPX_GLOBAL_INFO {
 48  ULONG RoutingTableHashSize;
 49  ULONG EventLogMask;
 50} IPX_GLOBAL_INFO,*PIPX_GLOBAL_INFO;
 51
 52typedef 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
 61typedef struct _IPXWAN_IF_INFO {
 62  ULONG AdminState;
 63} IPXWAN_IF_INFO,*PIPXWAN_IF_INFO;
 64
 65typedef 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
 75typedef IPX_SERVER_ENTRY IPX_STATIC_SERVICE_INFO,*PIPX_STATIC_SERVICE_INFO;
 76
 77typedef 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
 86typedef 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
104typedef struct _IF_TABLE_INDEX {
105  ULONG InterfaceIndex;
106} IF_TABLE_INDEX,*PIF_TABLE_INDEX;
107
108typedef struct _ROUTING_TABLE_INDEX {
109  UCHAR Network[4];
110} ROUTING_TABLE_INDEX,*PROUTING_TABLE_INDEX;
111
112typedef struct _STATIC_ROUTES_TABLE_INDEX {
113  ULONG InterfaceIndex;
114  UCHAR Network[4];
115} STATIC_ROUTES_TABLE_INDEX,*PSTATIC_ROUTES_TABLE_INDEX;
116
117typedef struct _SERVICES_TABLE_INDEX {
118  USHORT ServiceType;
119  UCHAR ServiceName[48];
120} SERVICES_TABLE_INDEX,*PSERVICES_TABLE_INDEX;
121
122typedef 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
128typedef 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
136typedef 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
141typedef 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
152typedef 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
167typedef 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
184typedef 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
194typedef union _IPX_MIB_ROW {
195  IPX_INTERFACE Interface;
196  IPX_ROUTE Route;
197  IPX_SERVICE Service;
198} IPX_MIB_ROW,*PIPX_MIB_ROW;
199
200typedef 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