From ae6296eb104c0a8a6e402f6be7c43f4d9fb774ce Mon Sep 17 00:00:00 2001 From: Filip Navara Date: Tue, 4 May 2004 19:53:14 +0000 Subject: [PATCH] - Remove IPHLPAPI headers copied from Wine. - Add the necessary structures to W32API headers. svn path=/trunk/; revision=9300 --- reactos/include/iphlpapi.h | 178 ----------------------- reactos/include/iptypes.h | 229 ------------------------------ reactos/w32api/include/iphlpapi.h | 1 + reactos/w32api/include/iptypes.h | 130 +++++++++++++++++ 4 files changed, 131 insertions(+), 407 deletions(-) delete mode 100644 reactos/include/iphlpapi.h delete mode 100644 reactos/include/iptypes.h diff --git a/reactos/include/iphlpapi.h b/reactos/include/iphlpapi.h deleted file mode 100644 index eb8d3860b38..00000000000 --- a/reactos/include/iphlpapi.h +++ /dev/null @@ -1,178 +0,0 @@ -/* WINE iphlpapi.h - * Copyright (C) 2003 Juan Lang - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ -#ifndef WINE_IPHLPAPI_H__ -#define WINE_IPHLPAPI_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include - -DWORD -STDCALL -NhpAllocateAndGetInterfaceInfoFromStack( - OUT IP_INTERFACE_NAME_INFO **ppTable, - OUT PDWORD pdwCount, - IN BOOL bOrder, - IN HANDLE hHeap, - IN DWORD dwFlags - ); -DWORD STDCALL AllocateAndGetIfTableFromStack(PMIB_IFTABLE *ppIfTable, - BOOL bOrder, HANDLE heap, DWORD flags); -DWORD STDCALL AllocateAndGetIpAddrTableFromStack(PMIB_IPADDRTABLE *ppIpAddrTable, - BOOL bOrder, HANDLE heap, DWORD flags); -DWORD STDCALL AllocateAndGetIpForwardTableFromStack(PMIB_IPFORWARDTABLE * - ppIpForwardTable, BOOL bOrder, HANDLE heap, DWORD flags); -DWORD STDCALL AllocateAndGetIpNetTableFromStack(PMIB_IPNETTABLE *ppIpNetTable, - BOOL bOrder, HANDLE heap, DWORD flags); -DWORD STDCALL AllocateAndGetTcpTableFromStack(PMIB_TCPTABLE *ppTcpTable, - BOOL bOrder, HANDLE heap, DWORD flags); -DWORD STDCALL AllocateAndGetUdpTableFromStack(PMIB_UDPTABLE *ppUdpTable, - BOOL bOrder, HANDLE heap, DWORD flags); - -DWORD STDCALL GetNumberOfInterfaces(PDWORD pdwNumIf); - -DWORD STDCALL GetIfEntry(PMIB_IFROW pIfRow); - -DWORD STDCALL GetIfTable(PMIB_IFTABLE pIfTable, PULONG pdwSize, BOOL bOrder); - -DWORD STDCALL GetIpAddrTable(PMIB_IPADDRTABLE pIpAddrTable, PULONG pdwSize, - BOOL bOrder); - -DWORD STDCALL GetIpNetTable(PMIB_IPNETTABLE pIpNetTable, PULONG pdwSize, - BOOL bOrder); - -DWORD STDCALL GetIpForwardTable(PMIB_IPFORWARDTABLE pIpForwardTable, - PULONG pdwSize, BOOL bOrder); - -DWORD STDCALL GetTcpTable(PMIB_TCPTABLE pTcpTable, PDWORD pdwSize, BOOL bOrder); - -DWORD STDCALL GetUdpTable(PMIB_UDPTABLE pUdpTable, PDWORD pdwSize, BOOL bOrder); - -DWORD STDCALL GetIpStatistics(PMIB_IPSTATS pStats); - -DWORD STDCALL GetIpStatisticsEx(PMIB_IPSTATS pStats, DWORD dwFamily); - -DWORD STDCALL GetIcmpStatistics(PMIB_ICMP pStats); - -DWORD STDCALL GetTcpStatistics(PMIB_TCPSTATS pStats); - -DWORD STDCALL GetTcpStatisticsEx(PMIB_TCPSTATS pStats, DWORD dwFamily); - -DWORD STDCALL GetUdpStatistics(PMIB_UDPSTATS pStats); - -DWORD STDCALL GetUdpStatisticsEx(PMIB_UDPSTATS pStats, DWORD dwFamily); - -DWORD STDCALL SetIfEntry(PMIB_IFROW pIfRow); - -DWORD STDCALL CreateIpForwardEntry(PMIB_IPFORWARDROW pRoute); - -DWORD STDCALL SetIpForwardEntry(PMIB_IPFORWARDROW pRoute); - -DWORD STDCALL DeleteIpForwardEntry(PMIB_IPFORWARDROW pRoute); - -DWORD STDCALL SetIpStatistics(PMIB_IPSTATS pIpStats); - -DWORD STDCALL SetIpTTL(UINT nTTL); - -DWORD STDCALL CreateIpNetEntry(PMIB_IPNETROW pArpEntry); - -DWORD STDCALL SetIpNetEntry(PMIB_IPNETROW pArpEntry); - -DWORD STDCALL DeleteIpNetEntry(PMIB_IPNETROW pArpEntry); - -DWORD STDCALL FlushIpNetTable(DWORD dwIfIndex); - -DWORD STDCALL CreateProxyArpEntry(DWORD dwAddress, DWORD dwMask, - DWORD dwIfIndex); - -DWORD STDCALL DeleteProxyArpEntry(DWORD dwAddress, DWORD dwMask, - DWORD dwIfIndex); - -DWORD STDCALL SetTcpEntry(PMIB_TCPROW pTcpRow); - -DWORD STDCALL GetInterfaceInfo(PIP_INTERFACE_INFO pIfTable, PULONG dwOutBufLen); - -DWORD STDCALL GetUniDirectionalAdapterInfo( - PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo, PULONG dwOutBufLen); - -DWORD STDCALL GetBestInterface(IPAddr dwDestAddr, PDWORD pdwBestIfIndex); - -DWORD STDCALL GetBestRoute(DWORD dwDestAddr, DWORD dwSourceAddr, - PMIB_IPFORWARDROW pBestRoute); - -DWORD STDCALL NotifyAddrChange(PHANDLE Handle, LPOVERLAPPED overlapped); - -DWORD STDCALL NotifyRouteChange(PHANDLE Handle, LPOVERLAPPED overlapped); - -DWORD STDCALL GetAdapterIndex(LPWSTR AdapterName,PULONG IfIndex); - -DWORD STDCALL AddIPAddress(IPAddr Address, IPMask IpMask, DWORD IfIndex, - PULONG NTEContext, PULONG NTEInstance); - -DWORD STDCALL DeleteIPAddress(ULONG NTEContext); - -DWORD STDCALL GetNetworkParams(PFIXED_INFO pFixedInfo, PULONG pOutBufLen); - -DWORD STDCALL GetAdaptersInfo(PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen); - -DWORD STDCALL GetPerAdapterInfo(ULONG IfIndex, - PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen); - -DWORD STDCALL IpReleaseAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo); - -DWORD STDCALL IpRenewAddress(PIP_ADAPTER_INDEX_MAP AdapterInfo); - -DWORD STDCALL SendARP(IPAddr DestIP, IPAddr SrcIP, PULONG pMacAddr, - PULONG PhyAddrLen); - -BOOL STDCALL GetRTTAndHopCount(IPAddr DestIpAddress, PULONG HopCount, - ULONG MaxHops, PULONG RTT); - -DWORD STDCALL GetFriendlyIfIndex(DWORD IfIndex); - -DWORD STDCALL EnableRouter(HANDLE* pHandle, OVERLAPPED* pOverlapped); - -DWORD STDCALL UnenableRouter(OVERLAPPED* pOverlapped, LPDWORD lpdwEnableCount); - -DWORD STDCALL GetIcmpStatisticsEx(PMIB_ICMP_EX pStats,DWORD dwFamily); - -DWORD STDCALL NhpAllocateAndGetInterfaceInfoFromStack(IP_INTERFACE_NAME_INFO **ppTable,PDWORD pdwCount,BOOL bOrder,HANDLE hHeap,DWORD dwFlags); - -DWORD STDCALL GetBestInterfaceEx(struct sockaddr *pDestAddr,PDWORD pdwBestIfIndex); - -BOOL STDCALL CancelIPChangeNotify(LPOVERLAPPED notifyOverlapped); - -PIP_ADAPTER_ORDER_MAP STDCALL GetAdapterOrderMap(VOID); - -DWORD STDCALL GetAdaptersAddresses(ULONG Family,DWORD Flags,PVOID Reserved,PIP_ADAPTER_ADDRESSES pAdapterAddresses,PULONG pOutBufLen); - -DWORD STDCALL DisableMediaSense(HANDLE *pHandle,OVERLAPPED *pOverLapped); - -DWORD STDCALL RestoreMediaSense(OVERLAPPED* pOverlapped,LPDWORD lpdwEnableCount); - -DWORD STDCALL GetIpErrorString(IP_STATUS ErrorCode,PWCHAR Buffer,PDWORD Size); - -#ifdef __cplusplus -} -#endif - -#endif /* WINE_IPHLPAPI_H__ */ diff --git a/reactos/include/iptypes.h b/reactos/include/iptypes.h deleted file mode 100644 index 61ec1bee469..00000000000 --- a/reactos/include/iptypes.h +++ /dev/null @@ -1,229 +0,0 @@ -/* WINE iptypes.h - * Copyright (C) 2003 Juan Lang - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef WINE_IPTYPES_H_ -#define WINE_IPTYPES_H_ - -#include -#include - -#define MAX_ADAPTER_DESCRIPTION_LENGTH 128 -#define MAX_ADAPTER_NAME_LENGTH 256 -#define MAX_ADAPTER_ADDRESS_LENGTH 8 -#define MAX_HOSTNAME_LEN 128 -#define MAX_DOMAIN_NAME_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 - -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 _IP_PER_ADAPTER_INFO { - UINT AutoconfigEnabled; - UINT AutoconfigActive; - PIP_ADDR_STRING CurrentDnsServer; - IP_ADDR_STRING DnsServerList; -} IP_PER_ADAPTER_INFO, *PIP_PER_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; - -typedef struct ip_interface_name_info { - ULONG Index; - ULONG MediaType; - UCHAR ConnectionType; - UCHAR AccessType; - GUID DeviceGuid; - GUID InterfaceGuid; -} IP_INTERFACE_NAME_INFO, *PIP_INTERFACE_NAME_INFO; - -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 { - IpDadStateInvalid = 0, - IpDadStateTentative, - IpDadStateDuplicate, - IpDadStateDeprecated, - IpDadStatePreferred, -} IP_DAD_STATE; - -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_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_UNICAST_ADDRESS { - union { - ULONGLONG Alignment; - 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 enum { - IfOperStatusUp = 1, - IfOperStatusDown, - IfOperStatusTesting, - IfOperStatusUnknown, - IfOperStatusDormant, - IfOperStatusNotPresent, - IfOperStatusLowerLayerDown -} IF_OPER_STATUS; - -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 /* WINE_IPTYPES_H_*/ diff --git a/reactos/w32api/include/iphlpapi.h b/reactos/w32api/include/iphlpapi.h index 214c53ef718..d1395fd4b62 100644 --- a/reactos/w32api/include/iphlpapi.h +++ b/reactos/w32api/include/iphlpapi.h @@ -33,6 +33,7 @@ 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 GetIpStatisticsEx(PMIB_IPSTATS,DWORD); DWORD WINAPI GetNetworkParams(PFIXED_INFO,PULONG); DWORD WINAPI GetNumberOfInterfaces(PDWORD); DWORD WINAPI GetPerAdapterInfo(ULONG,PIP_PER_ADAPTER_INFO, PULONG); diff --git a/reactos/w32api/include/iptypes.h b/reactos/w32api/include/iptypes.h index 6ddded00a8f..c2c361c8e97 100644 --- a/reactos/w32api/include/iptypes.h +++ b/reactos/w32api/include/iptypes.h @@ -60,6 +60,14 @@ typedef struct _IP_PER_ADAPTER_INFO { PIP_ADDR_STRING CurrentDnsServer; IP_ADDR_STRING DnsServerList; } IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO; +typedef struct { + ULONG Index; + ULONG MediaType; + UCHAR ConnectionType; + UCHAR AccessType; + GUID DeviceGuid; + GUID InterfaceGuid; +} IP_INTERFACE_NAME_INFO, *PIP_INTERFACE_NAME_INFO; typedef struct _FIXED_INFO { char HostName[MAX_HOSTNAME_LEN+4] ; char DomainName[MAX_DOMAIN_NAME_LEN+4]; @@ -71,6 +79,128 @@ typedef struct _FIXED_INFO { UINT EnableProxy; UINT EnableDns; } FIXED_INFO, *PFIXED_INFO; +#ifdef _WINSOCK2_H +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 { + IpDadStateInvalid = 0, + IpDadStateTentative, + IpDadStateDuplicate, + IpDadStateDeprecated, + IpDadStatePreferred, +} IP_DAD_STATE; +typedef enum { + IfOperStatusUp = 1, + IfOperStatusDown, + IfOperStatusTesting, + IfOperStatusUnknown, + IfOperStatusDormant, + IfOperStatusNotPresent, + IfOperStatusLowerLayerDown +} IF_OPER_STATUS; +typedef struct _IP_ADAPTER_UNICAST_ADDRESS { + union { + ULONGLONG Alignment; + 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_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_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 }