/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #ifndef _IPXRTDEF_ #define _IPXRTDEF_ #include #include #include #include #include #define IPX_ROUTER_VERSION_1 RTR_INFO_BLOCK_VERSION #define IPX_PROTOCOL_LOCAL 1 #define IPX_PROTOCOL_STATIC 2 #define IF_TYPE_OTHER 1 #define IF_TYPE_LAN 2 #define IF_TYPE_WAN_ROUTER 3 #define IF_TYPE_WAN_WORKSTATION 4 #define IF_TYPE_INTERNAL 5 #define IF_TYPE_PERSONAL_WAN_ROUTER 6 #define IF_TYPE_ROUTER_WORKSTATION_DIALOUT 7 #define IF_TYPE_STANDALONE_WORKSTATION_DIALOUT 8 #define IPX_INTERFACE_INFO_TYPE 1 #define IPX_STATIC_ROUTE_INFO_TYPE 2 #define IPX_STATIC_SERVICE_INFO_TYPE 3 #define IPX_SERVICE_FILTER_INFO_TYPE 4 #define IPX_ROUTE_FILTER_INFO_TYPE 5 #define IPX_IN_TRAFFIC_FILTER_INFO_TYPE 6 #define IPX_ADAPTER_INFO_TYPE 7 #define IPXWAN_INTERFACE_INFO_TYPE 8 #define IPX_GLOBAL_INFO_TYPE 9 #define IPX_STATIC_NETBIOS_NAME_INFO_TYPE 10 #define IPX_IN_TRAFFIC_FILTER_GLOBAL_INFO_TYPE 11 #define IPX_OUT_TRAFFIC_FILTER_INFO_TYPE 12 #define IPX_OUT_TRAFFIC_FILTER_GLOBAL_INFO_TYPE 13 #define IPX_SMALL_ROUTING_TABLE_HASH_SIZE 31 #define IPX_MEDIUM_ROUTING_TABLE_HASH_SIZE 257 #define IPX_LARGE_ROUTING_TABLE_HASH_SIZE 2047 typedef struct _IPX_GLOBAL_INFO { ULONG RoutingTableHashSize; ULONG EventLogMask; } IPX_GLOBAL_INFO,*PIPX_GLOBAL_INFO; typedef struct _IPX_IF_INFO { ULONG AdminState; ULONG NetbiosAccept; ULONG NetbiosDeliver; } IPX_IF_INFO,*PIPX_IF_INFO; #define IPX_DEDICATED_LINK 1 #define IPX_DIALED_LINK 2 typedef struct _IPXWAN_IF_INFO { ULONG AdminState; } IPXWAN_IF_INFO,*PIPXWAN_IF_INFO; typedef struct _IPX_STATIC_ROUTE_INFO { __C89_NAMELESS union { ULONG DwordAlign; UCHAR Network[4]; }; USHORT TickCount; USHORT HopCount; UCHAR NextHopMacAddress[6]; } IPX_STATIC_ROUTE_INFO,*PIPX_STATIC_ROUTE_INFO; typedef IPX_SERVER_ENTRY IPX_STATIC_SERVICE_INFO,*PIPX_STATIC_SERVICE_INFO; typedef struct _IPX_STATIC_NETBIOS_NAME_INFO { __C89_NAMELESS union { ULONG DwordAlign; UCHAR Name[16]; }; } IPX_STATIC_NETBIOS_NAME_INFO,*PIPX_STATIC_NETBIOS_NAME_INFO; #define MAX_ADAPTER_NAME_LEN 48 typedef struct _IPX_ADAPTER_INFO { ULONG PacketType; WCHAR AdapterName[MAX_ADAPTER_NAME_LEN]; } IPX_ADAPTER_INFO,*PIPX_ADAPTER_INFO; #define AUTO_DETECT_PACKET_TYPE 0xFFFFFFFF #define IPX_BASE_ENTRY 0 #define IPX_INTERFACE_TABLE 1 #define IPX_DEST_TABLE 2 #define IPX_STATIC_ROUTE_TABLE 3 #define IPX_SERV_TABLE 4 #define IPX_STATIC_SERV_TABLE 5 #define MAX_IPX_MIB_TABLES 6 #define IPX_INTERFACE_ANSI_NAME_LEN 48 typedef struct _IF_TABLE_INDEX { ULONG InterfaceIndex; } IF_TABLE_INDEX,*PIF_TABLE_INDEX; typedef struct _ROUTING_TABLE_INDEX { UCHAR Network[4]; } ROUTING_TABLE_INDEX,*PROUTING_TABLE_INDEX; typedef struct _STATIC_ROUTES_TABLE_INDEX { ULONG InterfaceIndex; UCHAR Network[4]; } STATIC_ROUTES_TABLE_INDEX,*PSTATIC_ROUTES_TABLE_INDEX; typedef struct _SERVICES_TABLE_INDEX { USHORT ServiceType; UCHAR ServiceName[48]; } SERVICES_TABLE_INDEX,*PSERVICES_TABLE_INDEX; typedef struct _STATIC_SERVICES_TABLE_INDEX { ULONG InterfaceIndex; USHORT ServiceType; UCHAR ServiceName[48]; } STATIC_SERVICES_TABLE_INDEX,*PSTATIC_SERVICES_TABLE_INDEX; typedef union _IPX_MIB_INDEX { IF_TABLE_INDEX InterfaceTableIndex; ROUTING_TABLE_INDEX RoutingTableIndex; STATIC_ROUTES_TABLE_INDEX StaticRoutesTableIndex; SERVICES_TABLE_INDEX ServicesTableIndex; STATIC_SERVICES_TABLE_INDEX StaticServicesTableIndex; } IPX_MIB_INDEX,*PIPX_MIB_INDEX; typedef struct _IPX_MIB_GET_INPUT_DATA { ULONG TableId; IPX_MIB_INDEX MibIndex; } IPX_MIB_GET_INPUT_DATA,*PIPX_MIB_GET_INPUT_DATA; typedef struct _IPXMIB_BASE { ULONG OperState; UCHAR PrimaryNetNumber[4]; UCHAR Node[6]; UCHAR SysName[IPX_INTERFACE_ANSI_NAME_LEN]; ULONG MaxPathSplits; ULONG IfCount; ULONG DestCount; ULONG ServCount; } IPXMIB_BASE,*PIPXMIB_BASE; typedef struct _IPX_IF_STATS { ULONG IfOperState; ULONG MaxPacketSize; ULONG InHdrErrors; ULONG InFiltered; ULONG InNoRoutes; ULONG InDiscards; ULONG InDelivers; ULONG OutFiltered; ULONG OutDiscards; ULONG OutDelivers; ULONG NetbiosReceived; ULONG NetbiosSent; } IPX_IF_STATS,*PIPX_IF_STATS; typedef struct _IPX_INTERFACE { ULONG InterfaceIndex; ULONG AdminState; ULONG AdapterIndex; UCHAR InterfaceName[IPX_INTERFACE_ANSI_NAME_LEN]; ULONG InterfaceType; ULONG MediaType; UCHAR NetNumber[4]; UCHAR MacAddress[6]; ULONG Delay; ULONG Throughput; ULONG NetbiosAccept; ULONG NetbiosDeliver; ULONG EnableIpxWanNegotiation; IPX_IF_STATS IfStats; } IPX_INTERFACE,*PIPX_INTERFACE; typedef struct _IPX_ROUTE { ULONG InterfaceIndex; ULONG Protocol; UCHAR Network[4]; USHORT TickCount; USHORT HopCount; UCHAR NextHopMacAddress[6]; ULONG Flags; } IPX_ROUTE,*PIPX_ROUTE; typedef union _IPX_MIB_ROW { IPX_INTERFACE Interface; IPX_ROUTE Route; IPX_SERVICE Service; } IPX_MIB_ROW,*PIPX_MIB_ROW; typedef struct _IPX_MIB_SET_INPUT_DATA { ULONG TableId; IPX_MIB_ROW MibRow; } IPX_MIB_SET_INPUT_DATA,*PIPX_MIB_SET_INPUT_DATA; #endif