From 273243a857aaf7cd4270009ad9fd324709f37614 Mon Sep 17 00:00:00 2001 From: Dimitri Papadopoulos Date: Wed, 5 Apr 2006 15:53:58 +0000 Subject: [PATCH] * include/iptypes.h (IP_INTERFACE_NAME_INFO, IP_ADAPTER_ANYCAST_ADDRESS,IP_ADAPTER_MULTICAST_ADDRESS, IP_ADAPTER_UNICAST_ADDRESS,IP_ADAPTER_DNS_SERVER_ADDRESS, IP_ADAPTER_PREFIX,IP_ADAPTER_ADDRESSES): Add structures. (IF_OPER_STATUS,IP_DAD_STATE,IP_PREFIX_ORIGIN,IP_SUFFIX_ORIGIN, SCOPE_LEVEL): Add enums. (IP_ADAPTER_*): Define. --- winsup/w32api/ChangeLog | 10 +++ winsup/w32api/include/iptypes.h | 150 ++++++++++++++++++++++++++++++++ 2 files changed, 160 insertions(+) diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index 95e21c5c0..1bb05c18b 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,13 @@ +2006-04-05 Dimitri Papadopoulos + + * include/iptypes.h (IP_INTERFACE_NAME_INFO, + IP_ADAPTER_ANYCAST_ADDRESS,IP_ADAPTER_MULTICAST_ADDRESS, + IP_ADAPTER_UNICAST_ADDRESS,IP_ADAPTER_DNS_SERVER_ADDRESS, + IP_ADAPTER_PREFIX,IP_ADAPTER_ADDRESSES): Add structures. + (IF_OPER_STATUS,IP_DAD_STATE,IP_PREFIX_ORIGIN,IP_SUFFIX_ORIGIN, + SCOPE_LEVEL): Add enums. + (IP_ADAPTER_*): Define. + 2006-04-05 Dimitri Papadopoulos * include/winuser.h (GetWindowExtEx): Removed, belongs to wingdi.h. diff --git a/winsup/w32api/include/iptypes.h b/winsup/w32api/include/iptypes.h index 6ddded00a..4c67c4ac5 100644 --- a/winsup/w32api/include/iptypes.h +++ b/winsup/w32api/include/iptypes.h @@ -8,6 +8,7 @@ #ifdef __cplusplus extern "C" { #endif + #define DEFAULT_MINIMUM_ENTITIES 32 #define MAX_ADAPTER_ADDRESS_LENGTH 8 #define MAX_ADAPTER_DESCRIPTION_LENGTH 128 @@ -25,6 +26,17 @@ extern "C" { #define IF_FDDI_ADAPTERTYPE 3 #define IF_PPP_ADAPTERTYPE 4 #define IF_LOOPBACK_ADAPTERTYPE 5 +#if (_WIN32_WINNT >= 0x0501) +#define IP_ADAPTER_DDNS_ENABLED 0x00000001 +#define IP_ADAPTER_REGISTER_ADAPTER_SUFFIX 0x00000002 +#define IP_ADAPTER_DHCP_ENABLED 0x00000004 +#define IP_ADAPTER_RECEIVE_ONLY 0x00000008 +#define IP_ADAPTER_NO_MULTICAST 0x00000010 +#define IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG 0x00000020 +#define IP_ADAPTER_ADDRESS_DNS_ELIGIBLE 0x00000001 +#define IP_ADAPTER_ADDRESS_TRANSIENT 0x00000002 +#endif + typedef struct { char String[16]; } IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING; @@ -71,6 +83,144 @@ typedef struct _FIXED_INFO { UINT EnableProxy; UINT EnableDns; } FIXED_INFO, *PFIXED_INFO; +#if (_WIN32_WINNT >= 0x0501) +typedef enum { + IfOperStatusUp = 1, + IfOperStatusDown, + IfOperStatusTesting, + IfOperStatusUnknown, + IfOperStatusDormant, + IfOperStatusNotPresent, + IfOperStatusLowerLayerDown +} IF_OPER_STATUS; +typedef enum { + IpDadStateInvalid = 0, + IpDadStateTentative, + IpDadStateDuplicate, + IpDadStateDeprecated, + IpDadStatePreferred +} IP_DAD_STATE; +typedef enum { + IpPrefixOriginOther = 0, + IpPrefixOriginManual, + IpPrefixOriginWellKnown, + IpPrefixOriginDhcp, + IpPrefixOriginRouterAdvertisement +} IP_PREFIX_ORIGIN; +typedef enum { + IpSuffixOriginOther = 0, + IpSuffixOriginManual, + IpSuffixOriginWellKnown, + IpSuffixOriginDhcp, + IpSuffixOriginLinkLayerAddress, + IpSuffixOriginRandom +} IP_SUFFIX_ORIGIN; +typedef enum { + ScopeLevelInterface = 1, + ScopeLevelLink = 2, + ScopeLevelSubnet = 3, + ScopeLevelAdmin = 4, + ScopeLevelSite = 5, + ScopeLevelOrganization = 8, + ScopeLevelGlobal = 14 +} SCOPE_LEVEL; +typedef struct { + ULONG Index; + ULONG MediaType; + UCHAR ConnectionType; + UCHAR AccessType; + GUID DeviceGuid; + GUID InterfaceGuid; +} IP_INTERFACE_NAME_INFO,*PIP_INTERFACE_NAME_INFO; +typedef struct _IP_ADAPTER_ANYCAST_ADDRESS { + union { + ULONGLONG Alignment; + struct { + ULONG Length; + DWORD Flags; + }; + }; + struct _IP_ADAPTER_ANYCAST_ADDRESS* Next; + SOCKET_ADDRESS Address; +} IP_ADAPTER_ANYCAST_ADDRESS,*PIP_ADAPTER_ANYCAST_ADDRESS; +typedef struct _IP_ADAPTER_MULTICAST_ADDRESS { + union { + ULONGLONG Alignment; + struct { + ULONG Length; + DWORD Flags; + }; + }; + struct _IP_ADAPTER_MULTICAST_ADDRESS* Next; + SOCKET_ADDRESS Address; +} IP_ADAPTER_MULTICAST_ADDRESS,*PIP_ADAPTER_MULTICAST_ADDRESS; +typedef struct _IP_ADAPTER_UNICAST_ADDRESS { + union { + struct { + ULONG Length; + DWORD Flags; + }; + }; + struct _IP_ADAPTER_UNICAST_ADDRESS* Next; + SOCKET_ADDRESS Address; + IP_PREFIX_ORIGIN PrefixOrigin; + IP_SUFFIX_ORIGIN SuffixOrigin; + IP_DAD_STATE DadState; + ULONG ValidLifetime; + ULONG PreferredLifetime; + ULONG LeaseLifetime; +} IP_ADAPTER_UNICAST_ADDRESS,*PIP_ADAPTER_UNICAST_ADDRESS; +typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS { + union { + ULONGLONG Alignment; + struct { + ULONG Length; + DWORD Reserved; + }; + }; + struct _IP_ADAPTER_DNS_SERVER_ADDRESS* Next; + SOCKET_ADDRESS Address; +} IP_ADAPTER_DNS_SERVER_ADDRESS,*PIP_ADAPTER_DNS_SERVER_ADDRESS; +typedef struct _IP_ADAPTER_PREFIX { + union { + ULONGLONG Alignment; + struct { + ULONG Length; + DWORD Flags; + }; + }; + struct _IP_ADAPTER_PREFIX* Next; + SOCKET_ADDRESS Address; + ULONG PrefixLength; +} IP_ADAPTER_PREFIX,*PIP_ADAPTER_PREFIX; +typedef struct _IP_ADAPTER_ADDRESSES { + union { + ULONGLONG Alignment; + struct { + ULONG Length; + DWORD IfIndex; + }; + }; + struct _IP_ADAPTER_ADDRESSES* Next; + PCHAR AdapterName; + PIP_ADAPTER_UNICAST_ADDRESS FirstUnicastAddress; + PIP_ADAPTER_ANYCAST_ADDRESS FirstAnycastAddress; + PIP_ADAPTER_MULTICAST_ADDRESS FirstMulticastAddress; + PIP_ADAPTER_DNS_SERVER_ADDRESS FirstDnsServerAddress; + PWCHAR DnsSuffix; + PWCHAR Description; + PWCHAR FriendlyName; + BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH]; + DWORD PhysicalAddressLength; + DWORD Flags; + DWORD Mtu; + DWORD IfType; + IF_OPER_STATUS OperStatus; + DWORD Ipv6IfIndex; + DWORD ZoneIndices[16]; + PIP_ADAPTER_PREFIX FirstPrefix; +} IP_ADAPTER_ADDRESSES,*PIP_ADAPTER_ADDRESSES; +#endif #ifdef __cplusplus }