123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- #ifndef HEADER_CARES_IPHLPAPI_H
- #define HEADER_CARES_IPHLPAPI_H
- /* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2004 - 2011 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
- #if defined(USE_WINSOCK)
- #ifndef INET_ADDRSTRLEN
- #define INET_ADDRSTRLEN 22
- #endif
- #ifndef INET6_ADDRSTRLEN
- #define INET6_ADDRSTRLEN 65
- #endif
- /* ---------------------------------- */
- #if !defined(_WS2DEF_) && \
- !defined(__CSADDR_DEFINED__) && \
- !defined(__CSADDR_T_DEFINED)
- /* ---------------------------------- */
- typedef struct _SOCKET_ADDRESS {
- LPSOCKADDR lpSockaddr;
- INT iSockaddrLength;
- } SOCKET_ADDRESS, *PSOCKET_ADDRESS;
- typedef struct _CSADDR_INFO {
- SOCKET_ADDRESS LocalAddr;
- SOCKET_ADDRESS RemoteAddr;
- INT iSocketType;
- INT iProtocol;
- } CSADDR_INFO, *PCSADDR_INFO;
- /* --------------------------------- */
- #endif /* ! _WS2DEF_ && \ */
- /* ! __CSADDR_DEFINED__ && \ */
- /* ! __CSADDR_T_DEFINED */
- /* --------------------------------- */
- /* ------------------------------- */
- #if !defined(IP_ADAPTER_DDNS_ENABLED)
- /* ------------------------------- */
- #define IP_ADAPTER_ADDRESS_DNS_ELIGIBLE 0x0001
- #define IP_ADAPTER_ADDRESS_TRANSIENT 0x0002
- #define IP_ADAPTER_DDNS_ENABLED 0x0001
- #define IP_ADAPTER_REGISTER_ADAPTER_SUFFIX 0x0002
- #define IP_ADAPTER_DHCP_ENABLED 0x0004
- #define IP_ADAPTER_RECEIVE_ONLY 0x0008
- #define IP_ADAPTER_NO_MULTICAST 0x0010
- #define IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG 0x0020
- #define GAA_FLAG_SKIP_UNICAST 0x0001
- #define GAA_FLAG_SKIP_ANYCAST 0x0002
- #define GAA_FLAG_SKIP_MULTICAST 0x0004
- #define GAA_FLAG_SKIP_DNS_SERVER 0x0008
- #define GAA_FLAG_INCLUDE_PREFIX 0x0010
- #define GAA_FLAG_SKIP_FRIENDLY_NAME 0x0020
- 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 enum {
- ScopeLevelInterface = 0x0001,
- ScopeLevelLink = 0x0002,
- ScopeLevelSubnet = 0x0003,
- ScopeLevelAdmin = 0x0004,
- ScopeLevelSite = 0x0005,
- ScopeLevelOrganization = 0x0008,
- ScopeLevelGlobal = 0x000E
- } SCOPE_LEVEL;
- typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
- union {
- ULONGLONG Alignment;
- struct {
- ULONG Length;
- DWORD Flags;
- } s;
- } u;
- 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;
- } s;
- } u;
- 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;
- } s;
- } u;
- 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;
- } s;
- } u;
- 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;
- } s;
- } u;
- 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;
- } s;
- } u;
- 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 /* ! IP_ADAPTER_DDNS_ENABLED */
- /* -------------------------------- */
- #endif /* USE_WINSOCK */
- #endif /* HEADER_CARES_IPHLPAPI_H */
|