From 9fba7a126f2788ce1fe28dfb8989465bc705a423 Mon Sep 17 00:00:00 2001 From: Jeff Zaroyko Date: Tue, 30 Dec 2008 22:38:31 +1100 Subject: includes: update iphlpapi and iptypes for GetAdaptersAddresses --- include/iphlpapi.h | 4 + include/iptypes.h | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 160 insertions(+), 0 deletions(-) diff --git a/include/iphlpapi.h b/include/iphlpapi.h index 1e64a18..a7edbcd 100644 --- a/include/iphlpapi.h +++ b/include/iphlpapi.h @@ -141,6 +141,10 @@ DWORD WINAPI EnableRouter(HANDLE* pHandle, OVERLAPPED* pOverlapped); DWORD WINAPI UnenableRouter(OVERLAPPED* pOverlapped, LPDWORD lpdwEnableCount); +#ifdef _WINSOCK2API_ +ULONG WINAPI GetAdapterAddresses(ULONG Family, ULONG Flags, PVOID Reserved, PIP_ADAPTER_ADDRESSES AdapterAddresses, PULONG SizePointer); +#endif + #ifdef __cplusplus } #endif diff --git a/include/iptypes.h b/include/iptypes.h index c0b8115..d526ad3 100644 --- a/include/iptypes.h +++ b/include/iptypes.h @@ -1,5 +1,6 @@ /* WINE iptypes.h * Copyright (C) 2003 Juan Lang + * Copyright (C) 2008 Jeff Zaroyko * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -33,6 +34,24 @@ #define MIXED_NODETYPE 4 #define HYBRID_NODETYPE 8 +#ifdef _WINSOCK2API_ +#define IP_ADAPTER_ADDRESS_DNS_ELIGIBLE 0x00000001 +#define IP_ADAPTER_ADDRESS_TRANSIENT 0x00000002 + +#define GAA_FLAG_SKIP_UNICAST 0x0000001 +#define GAA_FLAG_SKIP_ANYCAST 0x0000002 +#define GAA_FLAG_SKIP_MULTICAST 0x0000004 +#define GAA_FLAG_SKIP_DNS_SERVER 0x0000008 +#define GAA_FLAG_INCLUDE_PREFIX 0x0000010 +#define GAA_FLAG_SKIP_FRIENDLY_NAME 0x0000020 +#define GAA_FLAG_INCLUDE_WINS_INFO 0x0000040 +#define GAA_FLAG_INCLUDE_GATEWAYS 0x00000080 +#define GAA_FLAG_INCLUDE_ALL_INTERFACES 0x00000100 +#define GAA_FLAG_INCLUDE_ALL_COMPARTMENTS 0x00000200 +#define GAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER 0x00000400 + +#endif + typedef struct { char String[4 * 4]; } IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING; @@ -83,5 +102,142 @@ typedef struct { UINT EnableProxy; UINT EnableDns; } FIXED_INFO, *PFIXED_INFO; +#ifdef _WINSOCK2API_ +typedef enum { + IfOperStatusUp = 1, + IfOperStatusDown, + IfOperStatusTesting, + IfOperStatusUnknown, + IfOperStatusDormant, + IfOperStatusNotPresent, + IfOperStatusLowerLayerDown +} IF_OPER_STATUS; +typedef enum { + IpDadStateInvalid = 0, + IpDadStateTentative, + IpDadStateDuplicate, + IpDadStatePreferred +} IP_DAD_STATE; +typedef enum { + IpPrefixOriginOther = 0, + IpPrefixOriginManual, + IpPrefixOriginWellKnown, + 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; + } DUMMYSTRUCTNAME; + } DUMMYUNIONNAME; + 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; + } DUMMYSTRUCTNAME; + } DUMMYUNIONNAME; + struct _IP_ADAPTER_MULTICAST_ADDRESS *Next; + SOCKET_ADDRESS Address; +} IP_ADAPTER_MULTICAST_ADDRESS, *PIP_ADAPTER_MULTICAST_ADDRESS; +typedef struct _IP_ADAPTER_UNICAST_ADDRESS { + union { + ULONGLONG Alignment; + struct { + ULONG Length; + DWORD Flags; + } DUMMYSTRUCTNAME; + } DUMMYUNIONNAME; + 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; + } DUMMYSTRUCTNAME; + } DUMMYUNIONNAME; + 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; + } DUMMYSTRUCTNAME; + } DUMMYUNIONNAME; + 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; + } DUMMYSTRUCTNAME; + } DUMMYUNIONNAME; + 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 ZoneIndicies[16]; + PIP_ADAPTER_PREFIX FirstPrefix; +} IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES; +#endif #endif /* WINE_IPTYPES_H_*/ -- 1.5.4.3