ipxrtdef.h 5.1 KB

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