diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index 1662daf3e..bc61e05d9 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,11 @@ +Sun Oct 1 16:13:00 2000 Corinna Vinschen + + * lib/iphlpapi.def: New stub for iphlpapi.dll. + * include/iptypes.h: New header file. + * include/ipexport.h: Ditto. + * include/iphlpapi.h: Ditto. + * include/iprtrmib.h: Ditto. + Sun Oct 1 2:54:00 2000 Corinna Vinschen * include/ntdef.h: New file. diff --git a/winsup/w32api/include/ipexport.h b/winsup/w32api/include/ipexport.h new file mode 100644 index 000000000..a9b9ce012 --- /dev/null +++ b/winsup/w32api/include/ipexport.h @@ -0,0 +1,22 @@ +#ifndef _IPEXPORT_H_ +#define _IPEXPORT_H_ + +#ifndef ANY_SIZE +#define ANY_SIZE 1 +#endif + +#define MAX_ADAPTER_NAME 128 + +typedef unsigned long IPAddr, IPMask, IP_STATUS; + +typedef struct { + ULONG Index; + WCHAR Name[MAX_ADAPTER_NAME]; +} IP_ADAPTER_INDEX_MAP, *PIP_ADAPTER_INDEX_MAP; + +typedef struct { + LONG NumAdapters; + IP_ADAPTER_INDEX_MAP Adapter[ANY_SIZE]; +} IP_INTERFACE_INFO, *PIP_INTERFACE_INFO; + +#endif /* _IPEXPORT_H_ */ diff --git a/winsup/w32api/include/iphlpapi.h b/winsup/w32api/include/iphlpapi.h new file mode 100644 index 000000000..9b85ebe5c --- /dev/null +++ b/winsup/w32api/include/iphlpapi.h @@ -0,0 +1,40 @@ +#ifndef _IPHLPAPI_H_ +#define _IPHLPAPI_H_ + +#include +#include +#include + +DWORD WINAPI CreateIpForwardEntry(PMIB_IPFORWARDROW); +DWORD WINAPI CreateIpNetEntry(PMIB_IPNETROW); +DWORD WINAPI DeleteIpForwardEntry(PMIB_IPFORWARDROW); +DWORD WINAPI DeleteIpNetEntry(PMIB_IPNETROW); +DWORD WINAPI GetAdaptersInfo(PIP_ADAPTER_INFO,PULONG); +DWORD WINAPI GetBestInterface(IPAddr,PDWORD); +DWORD WINAPI GetBestRoute(DWORD,DWORD,PMIB_IPFORWARDROW); +DWORD WINAPI GetFriendlyIfIndex(DWORD); +DWORD WINAPI GetIcmpStatistics(PMIB_ICMP); +DWORD WINAPI GetIfEntry(PMIB_IFROW); +DWORD WINAPI GetIfTable(PMIB_IFTABLE); +DWORD WINAPI GetInterfaceInfo(PIP_INTERFACE_INFO,PULONG); +DWORD WINAPI GetIpAddrTable(PMIB_IPADDRTABLE,PULONG,BOOL); +DWORD WINAPI GetIpForwardTable(PMIB_IPFORWARDTABLE,PULONG,BOOL); +DWORD WINAPI GetIpNetTable(PMIB_IPNETTABLE,PULONG,BOOL); +DWORD WINAPI GetIpStatistics(PMIB_IPSTATS); +DWORD WINAPI GetNetworkParams(PFIXED_INFO,PULONG); +DWORD WINAPI GetNumberOfInterfaces(PDWORD); +BOOL WINAPI GetRTTAndHopCount(IPAddr,PULONG,ULONG,PULONG); +DWORD WINAPI GetTcpStatistics(PMIB_TCPSTATS); +DWORD WINAPI GetTcpTable(PMIB_TCPTABLE,PDWORD,BOOL); +DWORD WINAPI GetUdpStatistics(PMIB_UDPSTATS); +DWORD WINAPI GetUdpTable(PMIB_UDPTABLE,PDWORD,BOOL); +DWORD WINAPI IpReleaseAddress(PIP_ADAPTER_INDEX_MAP); +DWORD WINAPI IpRenewAddress(PIP_ADAPTER_INDEX_MAP); +DWORD WINAPI SetIfEntry(PMIB_IFROW); +DWORD WINAPI SetIpForwardEntry(PMIB_IPFORWARDROW); +DWORD WINAPI SetIpNetEntry(PMIB_IPNETROW); +DWORD WINAPI SetIpStatistics(PMIB_IPSTATS); +DWORD WINAPI SetIpTTL(UINT); +DWORD WINAPI SetTcpEntry(PMIB_TCPROW); + +#endif /* _IPHLPAPI_H_ */ diff --git a/winsup/w32api/include/iprtrmib.h b/winsup/w32api/include/iprtrmib.h new file mode 100644 index 000000000..a9b6bf5f2 --- /dev/null +++ b/winsup/w32api/include/iprtrmib.h @@ -0,0 +1,224 @@ +#ifndef _IPRTRMIB_H_ +#define _IPRTRMIB_H_ + +#ifndef ANY_SIZE +#define ANY_SIZE 1 +#endif + +#define MAXLEN_PHYSADDR 8 +#define MAXLEN_IFDESCR 256 + +#ifndef MAX_INTERFACE_NAME_LEN +#define MAX_INTERFACE_NAME_LEN 256 +#endif + +#define MIB_IPNET_TYPE_OTHER 1 +#define MIB_IPNET_TYPE_INVALID 2 +#define MIB_IPNET_TYPE_DYNAMIC 3 +#define MIB_IPNET_TYPE_STATIC 4 + +#define MIB_TCP_RTO_OTHER 1 +#define MIB_TCP_RTO_CONSTANT 2 +#define MIB_TCP_RTO_RSRE 3 +#define MIB_TCP_RTO_VANJ 4 + +#define MIB_TCP_STATE_CLOSED 1 +#define MIB_TCP_STATE_LISTEN 2 +#define MIB_TCP_STATE_SYN_SENT 3 +#define MIB_TCP_STATE_SYN_RCVD 4 +#define MIB_TCP_STATE_ESTAB 5 +#define MIB_TCP_STATE_FIN_WAIT1 6 +#define MIB_TCP_STATE_FIN_WAIT2 7 +#define MIB_TCP_STATE_CLOSE_WAIT 8 +#define MIB_TCP_STATE_CLOSING 9 +#define MIB_TCP_STATE_LAST_ACK 10 +#define MIB_TCP_STATE_TIME_WAIT 11 +#define MIB_TCP_STATE_DELETE_TCB 12 + +#define MIB_USE_CURRENT_TTL ((DWORD) -1) +#define MIB_USE_CURRENT_FORWARDING ((DWORD) -1) +#define MIB_TCP_MAXCONN_DYNAMIC ((DWORD) -1) + +typedef struct { + DWORD dwAddr; + DWORD dwIndex; + DWORD dwMask; + DWORD dwBCastAddr; + DWORD dwReasmSize; + unsigned short unused1; + unsigned short unused2; +} MIB_IPADDRROW, *PMIB_IPADDRROW; + +typedef struct { + DWORD dwNumEntries; + MIB_IPADDRROW table[ANY_SIZE]; +} MIB_IPADDRTABLE, *PMIB_IPADDRTABLE; + +typedef struct { + DWORD dwForwardDest; + DWORD dwForwardMask; + DWORD dwForwardPolicy; + DWORD dwForwardNextHop; + DWORD dwForwardIfIndex; + DWORD dwForwardType; + DWORD dwForwardProto; + DWORD dwForwardAge; + DWORD dwForwardNextHopAS; + DWORD dwForwardMetric1; + DWORD dwForwardMetric2; + DWORD dwForwardMetric3; + DWORD dwForwardMetric4; + DWORD dwForwardMetric5; +} MIB_IPFORWARDROW, *PMIB_IPFORWARDROW; + +typedef struct { + DWORD dwNumEntries; + MIB_IPFORWARDROW table[ANY_SIZE]; +} MIB_IPFORWARDTABLE, *PMIB_IPFORWARDTABLE; + +typedef struct { + DWORD dwIndex; + DWORD dwPhysAddrLen; + BYTE bPhysAddr[MAXLEN_PHYSADDR]; + DWORD dwAddr; + DWORD dwType; +} MIB_IPNETROW, *PMIB_IPNETROW; + +typedef struct { + DWORD dwNumEntries; + MIB_IPNETROW table[ANY_SIZE]; +} MIB_IPNETTABLE, *PMIB_IPNETTABLE; + +typedef struct { + DWORD dwMsgs; + DWORD dwErrors; + DWORD dwDestUnreachs; + DWORD dwTimeExcds; + DWORD dwParmProbs; + DWORD dwSrcQuenchs; + DWORD dwRedirects; + DWORD dwEchos; + DWORD dwEchoReps; + DWORD dwTimestamps; + DWORD dwTimestampReps; + DWORD dwAddrMasks; + DWORD dwAddrMaskReps; +} MIBICMPSTATS, *PMIBICMPSTATS; + +typedef struct { + MIBICMPSTATS icmpInStats; + MIBICMPSTATS icmpOutStats; +} MIBICMPINFO, *PMIBICMPINFO; + +typedef struct { + MIBICMPINFO stats; +} MIB_ICMP, *PMIB_ICMP; + +typedef struct { + WCHAR wszName[MAX_INTERFACE_NAME_LEN]; + DWORD dwIndex; + DWORD dwType; + DWORD dwMtu; + DWORD dwSpeed; + DWORD dwPhysAddrLen; + BYTE bPhysAddr[MAXLEN_PHYSADDR]; + DWORD dwAdminStatus; + DWORD dwOperStatus; + DWORD dwLastChange; + DWORD dwInOctets; + DWORD dwInUcastPkts; + DWORD dwInNUcastPkts; + DWORD dwInDiscards; + DWORD dwInErrors; + DWORD dwInUnknownProtos; + DWORD dwOutOctets; + DWORD dwOutUcastPkts; + DWORD dwOutNUcastPkts; + DWORD dwOutDiscards; + DWORD dwOutErrors; + DWORD dwOutQLen; + DWORD dwDescrLen; + BYTE bDescr[MAXLEN_IFDESCR]; +} MIB_IFROW, *PMIB_IFROW; + +typedef struct { + DWORD dwNumEntries; + MIB_IFROW table[ANY_SIZE]; +} MIB_IFTABLE, *PMIB_IFTABLE; + +typedef struct { + DWORD dwForwarding; + DWORD dwDefaultTTL; + DWORD dwInReceives; + DWORD dwInHdrErrors; + DWORD dwInAddrErrors; + DWORD dwForwDatagrams; + DWORD dwInUnknownProtos; + DWORD dwInDiscards; + DWORD dwInDelivers; + DWORD dwOutRequests; + DWORD dwRoutingDiscards; + DWORD dwOutDiscards; + DWORD dwOutNoRoutes; + DWORD dwReasmTimeout; + DWORD dwReasmReqds; + DWORD dwReasmOks; + DWORD dwReasmFails; + DWORD dwFragOks; + DWORD dwFragFails; + DWORD dwFragCreates; + DWORD dwNumIf; + DWORD dwNumAddr; + DWORD dwNumRoutes; +} MIB_IPSTATS, *PMIB_IPSTATS; + +typedef struct { + DWORD dwRtoAlgorithm; + DWORD dwRtoMin; + DWORD dwRtoMax; + DWORD dwMaxConn; + DWORD dwActiveOpens; + DWORD dwPassiveOpens; + DWORD dwAttemptFails; + DWORD dwEstabResets; + DWORD dwCurrEstab; + DWORD dwInSegs; + DWORD dwOutSegs; + DWORD dwRetransSegs; + DWORD dwInErrs; + DWORD dwOutRsts; + DWORD dwNumConns; +} MIB_TCPSTATS, *PMIB_TCPSTATS; + +typedef struct { + DWORD dwState; + DWORD dwLocalAddr; + DWORD dwLocalPort; + DWORD dwRemoteAddr; + DWORD dwRemotePort; +} MIB_TCPROW, *PMIB_TCPROW; + +typedef struct { + DWORD dwNumEntries; + MIB_TCPROW table[ANY_SIZE]; +} MIB_TCPTABLE, *PMIB_TCPTABLE; + +typedef struct { + DWORD dwInDatagrams; + DWORD dwNoPorts; + DWORD dwInErrors; + DWORD dwOutDatagrams; + DWORD dwNumAddrs; +} MIB_UDPSTATS, *PMIB_UDPSTATS; + +typedef struct { + DWORD dwLocalAddr; + DWORD dwLocalPort; +} MIB_UDPROW, *PMIB_UDPROW; + +typedef struct { + DWORD dwNumEntries; + MIB_UDPROW table[ANY_SIZE]; +} MIB_UDPTABLE, *PMIB_UDPTABLE; + +#endif /* _IPRTRMIB_H_ */ diff --git a/winsup/w32api/include/iptypes.h b/winsup/w32api/include/iptypes.h new file mode 100644 index 000000000..56a467910 --- /dev/null +++ b/winsup/w32api/include/iptypes.h @@ -0,0 +1,70 @@ +#ifndef _IPTYPES_H_ +#define _IPTYPES_H_ + +#define DEFAULT_MINIMUM_ENTITIES 32 + +#define MAX_ADAPTER_ADDRESS_LENGTH 8 +#define MAX_ADAPTER_DESCRIPTION_LENGTH 128 +#define MAX_ADAPTER_NAME_LENGTH 256 +#define MAX_DOMAIN_NAME_LEN 128 +#define MAX_HOSTNAME_LEN 128 +#define MAX_SCOPE_ID_LEN 256 + +#define BROADCAST_NODETYPE 1 +#define PEER_TO_PEER_NODETYPE 2 +#define MIXED_NODETYPE 4 +#define HYBRID_NODETYPE 8 + +#define IF_OTHER_ADAPTERTYPE 0 +#define IF_ETHERNET_ADAPTERTYPE 1 +#define IF_TOKEN_RING_ADAPTERTYPE 2 +#define IF_FDDI_ADAPTERTYPE 3 +#define IF_PPP_ADAPTERTYPE 4 +#define IF_LOOPBACK_ADAPTERTYPE 5 + +typedef struct { + char String[4 * 4]; +} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, + IP_MASK_STRING, *PIP_MASK_STRING; + +typedef struct __IP_ADDR_STRING { + struct __IP_ADDR_STRING* Next; + IP_ADDRESS_STRING IpAddress; + IP_MASK_STRING IpMask; + DWORD Context; +} IP_ADDR_STRING, *PIP_ADDR_STRING; + +typedef struct __IP_ADAPTER_INFO { + struct __IP_ADAPTER_INFO* Next; + DWORD ComboIndex; + char AdapterName[MAX_ADAPTER_NAME_LENGTH+4]; + char Description[MAX_ADAPTER_DESCRIPTION_LENGTH+4]; + UINT AddressLength; + BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH]; + DWORD Index; + UINT Type; + UINT DhcpEnabled; + PIP_ADDR_STRING CurrentIpAddress; + IP_ADDR_STRING IpAddressList; + IP_ADDR_STRING GatewayList; + IP_ADDR_STRING DhcpServer; + BOOL HaveWins; + IP_ADDR_STRING PrimaryWinsServer; + IP_ADDR_STRING SecondaryWinsServer; + time_t LeaseObtained; + time_t LeaseExpires; +} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO; + +typedef struct { + char HostName[MAX_HOSTNAME_LEN + 4] ; + char DomainName[MAX_DOMAIN_NAME_LEN + 4]; + PIP_ADDR_STRING CurrentDnsServer; + IP_ADDR_STRING DnsServerList; + UINT NodeType; + char ScopeId[MAX_SCOPE_ID_LEN + 4]; + UINT EnableRouting; + UINT EnableProxy; + UINT EnableDns; +} FIXED_INFO, *PFIXED_INFO; + +#endif /* _IPTYPES_H_ */ diff --git a/winsup/w32api/lib/iphlpapi.def b/winsup/w32api/lib/iphlpapi.def new file mode 100644 index 000000000..294c752ab --- /dev/null +++ b/winsup/w32api/lib/iphlpapi.def @@ -0,0 +1,33 @@ +LIBRARY "IPHLPAPI.DLL" +EXPORTS +CreateIpForwardEntry@4 +CreateIpNetEntry@4 +DeleteIpForwardEntry@4 +DeleteIpNetEntry@4 +GetAdaptersInfo@8 +GetBestInterface@8 +GetBestRoute@12 +GetFriendlyIfIndex@4 +GetIcmpStatistics@4 +GetIfEntry@4 +GetIfTable@12 +GetInterfaceInfo@8 +GetIpAddrTable@12 +GetIpForwardTable@12 +GetIpNetTable@12 +GetIpStatistics@4 +GetNetworkParams@8 +GetNumberOfInterfaces@4 +GetRTTAndHopCount@16 +GetTcpStatistics@4 +GetTcpTable@12 +GetUdpStatistics@4 +GetUdpTable@12 +IpReleaseAddress@4 +IpRenewAddress@4 +SetIfEntry@4 +SetIpForwardEntry@4 +SetIpNetEntry@4 +SetIpStatistics@4 +SetIpTTL@4 +SetTcpEntry@4