ares_iphlpapi.h
Go to the documentation of this file.
1 #ifndef HEADER_CARES_IPHLPAPI_H
2 #define HEADER_CARES_IPHLPAPI_H
3 
4 /* Copyright 1998 by the Massachusetts Institute of Technology.
5  * Copyright (C) 2004 - 2011 by Daniel Stenberg et al
6  *
7  * Permission to use, copy, modify, and distribute this
8  * software and its documentation for any purpose and without
9  * fee is hereby granted, provided that the above copyright
10  * notice appear in all copies and that both that copyright
11  * notice and this permission notice appear in supporting
12  * documentation, and that the name of M.I.T. not be used in
13  * advertising or publicity pertaining to distribution of the
14  * software without specific, written prior permission.
15  * M.I.T. makes no representations about the suitability of
16  * this software for any purpose. It is provided "as is"
17  * without express or implied warranty.
18  */
19 
20 #if defined(USE_WINSOCK)
21 
22 #ifndef INET_ADDRSTRLEN
23 #define INET_ADDRSTRLEN 22
24 #endif
25 
26 #ifndef INET6_ADDRSTRLEN
27 #define INET6_ADDRSTRLEN 65
28 #endif
29 
30 /* ---------------------------------- */
31 #if !defined(_WS2DEF_) && \
32  !defined(__CSADDR_DEFINED__) && \
33  !defined(__CSADDR_T_DEFINED)
34 /* ---------------------------------- */
35 
36 typedef struct _SOCKET_ADDRESS {
37  LPSOCKADDR lpSockaddr;
38  INT iSockaddrLength;
39 } SOCKET_ADDRESS, *PSOCKET_ADDRESS;
40 
41 typedef struct _CSADDR_INFO {
42  SOCKET_ADDRESS LocalAddr;
43  SOCKET_ADDRESS RemoteAddr;
44  INT iSocketType;
45  INT iProtocol;
46 } CSADDR_INFO, *PCSADDR_INFO;
47 
48 /* --------------------------------- */
49 #endif /* ! _WS2DEF_ && \ */
50 /* ! __CSADDR_DEFINED__ && \ */
51 /* ! __CSADDR_T_DEFINED */
52 /* --------------------------------- */
53 
54 /* ------------------------------- */
55 #if !defined(IP_ADAPTER_DDNS_ENABLED)
56 /* ------------------------------- */
57 
58 #define IP_ADAPTER_ADDRESS_DNS_ELIGIBLE 0x0001
59 #define IP_ADAPTER_ADDRESS_TRANSIENT 0x0002
60 
61 #define IP_ADAPTER_DDNS_ENABLED 0x0001
62 #define IP_ADAPTER_REGISTER_ADAPTER_SUFFIX 0x0002
63 #define IP_ADAPTER_DHCP_ENABLED 0x0004
64 #define IP_ADAPTER_RECEIVE_ONLY 0x0008
65 #define IP_ADAPTER_NO_MULTICAST 0x0010
66 #define IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG 0x0020
67 
68 #define GAA_FLAG_SKIP_UNICAST 0x0001
69 #define GAA_FLAG_SKIP_ANYCAST 0x0002
70 #define GAA_FLAG_SKIP_MULTICAST 0x0004
71 #define GAA_FLAG_SKIP_DNS_SERVER 0x0008
72 #define GAA_FLAG_INCLUDE_PREFIX 0x0010
73 #define GAA_FLAG_SKIP_FRIENDLY_NAME 0x0020
74 
75 typedef enum {
76  IpPrefixOriginOther = 0,
77  IpPrefixOriginManual,
78  IpPrefixOriginWellKnown,
79  IpPrefixOriginDhcp,
80  IpPrefixOriginRouterAdvertisement
81 } IP_PREFIX_ORIGIN;
82 
83 typedef enum {
84  IpSuffixOriginOther = 0,
85  IpSuffixOriginManual,
86  IpSuffixOriginWellKnown,
87  IpSuffixOriginDhcp,
88  IpSuffixOriginLinkLayerAddress,
89  IpSuffixOriginRandom
90 } IP_SUFFIX_ORIGIN;
91 
92 typedef enum {
93  IpDadStateInvalid = 0,
94  IpDadStateTentative,
95  IpDadStateDuplicate,
96  IpDadStateDeprecated,
97  IpDadStatePreferred
98 } IP_DAD_STATE;
99 
100 typedef enum {
101  IfOperStatusUp = 1,
102  IfOperStatusDown,
103  IfOperStatusTesting,
104  IfOperStatusUnknown,
105  IfOperStatusDormant,
106  IfOperStatusNotPresent,
107  IfOperStatusLowerLayerDown
108 } IF_OPER_STATUS;
109 
110 typedef enum {
111  ScopeLevelInterface = 0x0001,
112  ScopeLevelLink = 0x0002,
113  ScopeLevelSubnet = 0x0003,
114  ScopeLevelAdmin = 0x0004,
115  ScopeLevelSite = 0x0005,
116  ScopeLevelOrganization = 0x0008,
117  ScopeLevelGlobal = 0x000E
118 } SCOPE_LEVEL;
119 
120 typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
121  union {
122  ULONGLONG Alignment;
123  struct {
124  ULONG Length;
125  DWORD Flags;
126  } s;
127  } u;
128  struct _IP_ADAPTER_UNICAST_ADDRESS *Next;
129  SOCKET_ADDRESS Address;
130  IP_PREFIX_ORIGIN PrefixOrigin;
131  IP_SUFFIX_ORIGIN SuffixOrigin;
132  IP_DAD_STATE DadState;
133  ULONG ValidLifetime;
134  ULONG PreferredLifetime;
135  ULONG LeaseLifetime;
136 } IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS;
137 
138 typedef struct _IP_ADAPTER_ANYCAST_ADDRESS {
139  union {
140  ULONGLONG Alignment;
141  struct {
142  ULONG Length;
143  DWORD Flags;
144  } s;
145  } u;
146  struct _IP_ADAPTER_ANYCAST_ADDRESS *Next;
147  SOCKET_ADDRESS Address;
148 } IP_ADAPTER_ANYCAST_ADDRESS, *PIP_ADAPTER_ANYCAST_ADDRESS;
149 
150 typedef struct _IP_ADAPTER_MULTICAST_ADDRESS {
151  union {
152  ULONGLONG Alignment;
153  struct {
154  ULONG Length;
155  DWORD Flags;
156  } s;
157  } u;
158  struct _IP_ADAPTER_MULTICAST_ADDRESS *Next;
159  SOCKET_ADDRESS Address;
160 } IP_ADAPTER_MULTICAST_ADDRESS, *PIP_ADAPTER_MULTICAST_ADDRESS;
161 
162 typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS {
163  union {
164  ULONGLONG Alignment;
165  struct {
166  ULONG Length;
167  DWORD Reserved;
168  } s;
169  } u;
170  struct _IP_ADAPTER_DNS_SERVER_ADDRESS *Next;
171  SOCKET_ADDRESS Address;
172 } IP_ADAPTER_DNS_SERVER_ADDRESS, *PIP_ADAPTER_DNS_SERVER_ADDRESS;
173 
174 typedef struct _IP_ADAPTER_PREFIX {
175  union {
176  ULONGLONG Alignment;
177  struct {
178  ULONG Length;
179  DWORD Flags;
180  } s;
181  } u;
182  struct _IP_ADAPTER_PREFIX *Next;
183  SOCKET_ADDRESS Address;
184  ULONG PrefixLength;
185 } IP_ADAPTER_PREFIX, *PIP_ADAPTER_PREFIX;
186 
187 typedef struct _IP_ADAPTER_ADDRESSES {
188  union {
189  ULONGLONG Alignment;
190  struct {
191  ULONG Length;
192  DWORD IfIndex;
193  } s;
194  } u;
195  struct _IP_ADAPTER_ADDRESSES *Next;
196  PCHAR AdapterName;
197  PIP_ADAPTER_UNICAST_ADDRESS FirstUnicastAddress;
198  PIP_ADAPTER_ANYCAST_ADDRESS FirstAnycastAddress;
199  PIP_ADAPTER_MULTICAST_ADDRESS FirstMulticastAddress;
200  PIP_ADAPTER_DNS_SERVER_ADDRESS FirstDnsServerAddress;
201  PWCHAR DnsSuffix;
202  PWCHAR Description;
203  PWCHAR FriendlyName;
204  BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
205  DWORD PhysicalAddressLength;
206  DWORD Flags;
207  DWORD Mtu;
208  DWORD IfType;
209  IF_OPER_STATUS OperStatus;
210  DWORD Ipv6IfIndex;
211  DWORD ZoneIndices[16];
212  PIP_ADAPTER_PREFIX FirstPrefix;
213 } IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES;
214 
215 /* -------------------------------- */
216 #endif /* ! IP_ADAPTER_DDNS_ENABLED */
217 /* -------------------------------- */
218 
219 #endif /* USE_WINSOCK */
220 
221 #endif /* HEADER_CARES_IPHLPAPI_H */
u
OPENSSL_EXPORT pem_password_cb void * u
Definition: pem.h:351
absl::FormatConversionChar::s
@ s
absl::base_internal::Next
static AllocList * Next(int i, AllocList *prev, LowLevelAlloc::Arena *arena)
Definition: abseil-cpp/absl/base/internal/low_level_alloc.cc:453
absl::Length
size_t Length(TestCordSize size)
Definition: abseil-cpp/absl/strings/cord_test_helpers.h:80
absl::str_format_internal::Flags
Flags
Definition: abseil-cpp/absl/strings/internal/str_format/extension.h:134
framework.rpc.grpc_channelz.Address
Address
Definition: grpc_channelz.py:50


grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:33