This file is indexed.

/usr/share/mingw-w64/include/netioapi.h is in mingw-w64-common 4.0.4-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
/**
 * This file is part of the mingw-w64 runtime package.
 * No warranty is given; refer to the file DISCLAIMER within this pack
 */

#ifndef _NETIOAPI_H_
#define _NETIOAPI_H_

#include <winapifamily.h>

#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)

#ifdef __cplusplus
extern "C" {
#endif

#ifndef ANY_SIZE
#define ANY_SIZE 1
#endif

#ifdef __IPHLPAPI_H__
#define NETIO_STATUS DWORD
#define NETIO_SUCCESS(x) ((x) == NO_ERROR)
#define NETIOAPI_API_ WINAPI
#else
#include <ws2def.h>
#ifndef __CYGWIN__
#include <ws2ipdef.h>
#endif
#include <iprtrmib.h>
#include <ifdef.h>
#include <nldef.h>

#define NETIO_STATUS NTSTATUS
#define NETIO_SUCCESS(x) NT_SUCCESS (x)
#define NETIOAPI_API_ NTAPI
#endif

#define _NETIOAPI_SUCCESS_
#define NETIOAPI_API NETIO_STATUS NETIOAPI_API_

#define IF_NAMESIZE NDIS_IF_MAX_STRING_SIZE

  typedef enum _MIB_NOTIFICATION_TYPE {
    MibParameterNotification,
    MibAddInstance,
    MibDeleteInstance,
    MibInitialNotification
  } MIB_NOTIFICATION_TYPE,*PMIB_NOTIFICATION_TYPE;

#ifdef _WS2IPDEF_
#include <ntddndis.h>

#define MIB_INVALID_TEREDO_PORT_NUMBER 0

  typedef enum _MIB_IF_TABLE_LEVEL {
    MibIfTableNormal,
    MibIfTableRaw
  } MIB_IF_TABLE_LEVEL, *PMIB_IF_TABLE_LEVEL;

  typedef struct _MIB_IF_ROW2 {
    NET_LUID InterfaceLuid;
    NET_IFINDEX InterfaceIndex;
    GUID InterfaceGuid;
    WCHAR Alias[IF_MAX_STRING_SIZE + 1];
    WCHAR Description[IF_MAX_STRING_SIZE + 1];
    ULONG PhysicalAddressLength;
    UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
    UCHAR PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
    ULONG Mtu;
    IFTYPE Type;
    TUNNEL_TYPE TunnelType;
    NDIS_MEDIUM MediaType;
    NDIS_PHYSICAL_MEDIUM PhysicalMediumType;
    NET_IF_ACCESS_TYPE AccessType;
    NET_IF_DIRECTION_TYPE DirectionType;
    struct {
      BOOLEAN HardwareInterface : 1;
      BOOLEAN FilterInterface : 1;
      BOOLEAN ConnectorPresent : 1;
      BOOLEAN NotAuthenticated : 1;
      BOOLEAN NotMediaConnected : 1;
      BOOLEAN Paused : 1;
      BOOLEAN LowPower : 1;
      BOOLEAN EndPointInterface : 1;
    } InterfaceAndOperStatusFlags;
    IF_OPER_STATUS OperStatus;
    NET_IF_ADMIN_STATUS AdminStatus;
    NET_IF_MEDIA_CONNECT_STATE MediaConnectState;
    NET_IF_NETWORK_GUID NetworkGuid;
    NET_IF_CONNECTION_TYPE ConnectionType;
    ULONG64 TransmitLinkSpeed;
    ULONG64 ReceiveLinkSpeed;
    ULONG64 InOctets;
    ULONG64 InUcastPkts;
    ULONG64 InNUcastPkts;
    ULONG64 InDiscards;
    ULONG64 InErrors;
    ULONG64 InUnknownProtos;
    ULONG64 InUcastOctets;
    ULONG64 InMulticastOctets;
    ULONG64 InBroadcastOctets;
    ULONG64 OutOctets;
    ULONG64 OutUcastPkts;
    ULONG64 OutNUcastPkts;
    ULONG64 OutDiscards;
    ULONG64 OutErrors;
    ULONG64 OutUcastOctets;
    ULONG64 OutMulticastOctets;
    ULONG64 OutBroadcastOctets;
    ULONG64 OutQLen;
  } MIB_IF_ROW2,*PMIB_IF_ROW2;

  typedef struct _MIB_IF_TABLE2 {
    ULONG NumEntries;
    MIB_IF_ROW2 Table[ANY_SIZE];
  } MIB_IF_TABLE2, *PMIB_IF_TABLE2;

  typedef struct _MIB_IPINTERFACE_ROW {
    ADDRESS_FAMILY Family;
    NET_LUID InterfaceLuid;
    NET_IFINDEX InterfaceIndex;
    ULONG MaxReassemblySize;
    ULONG64 InterfaceIdentifier;
    ULONG MinRouterAdvertisementInterval;
    ULONG MaxRouterAdvertisementInterval;
    BOOLEAN AdvertisingEnabled;
    BOOLEAN ForwardingEnabled;
    BOOLEAN WeakHostSend;
    BOOLEAN WeakHostReceive;
    BOOLEAN UseAutomaticMetric;
    BOOLEAN UseNeighborUnreachabilityDetection;
    BOOLEAN ManagedAddressConfigurationSupported;
    BOOLEAN OtherStatefulConfigurationSupported;
    BOOLEAN AdvertiseDefaultRoute;
    NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior;
    ULONG DadTransmits;
    ULONG BaseReachableTime;
    ULONG RetransmitTime;
    ULONG PathMtuDiscoveryTimeout;
    NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior;
    ULONG LinkLocalAddressTimeout;
    ULONG ZoneIndices[ScopeLevelCount];
    ULONG SitePrefixLength;
    ULONG Metric;
    ULONG NlMtu;
    BOOLEAN Connected;
    BOOLEAN SupportsWakeUpPatterns;
    BOOLEAN SupportsNeighborDiscovery;
    BOOLEAN SupportsRouterDiscovery;
    ULONG ReachableTime;
    NL_INTERFACE_OFFLOAD_ROD TransmitOffload;
    NL_INTERFACE_OFFLOAD_ROD ReceiveOffload;
    BOOLEAN DisableDefaultRoutes;
  } MIB_IPINTERFACE_ROW,*PMIB_IPINTERFACE_ROW;

  typedef struct _MIB_IPINTERFACE_TABLE {
    ULONG NumEntries;
    MIB_IPINTERFACE_ROW Table[ANY_SIZE];
  } MIB_IPINTERFACE_TABLE,*PMIB_IPINTERFACE_TABLE;

  typedef struct _MIB_IFSTACK_ROW {
    NET_IFINDEX HigherLayerInterfaceIndex;
    NET_IFINDEX LowerLayerInterfaceIndex;
  } MIB_IFSTACK_ROW,*PMIB_IFSTACK_ROW;

  typedef struct _MIB_INVERTEDIFSTACK_ROW {
    NET_IFINDEX LowerLayerInterfaceIndex;
    NET_IFINDEX HigherLayerInterfaceIndex;
  } MIB_INVERTEDIFSTACK_ROW,*PMIB_INVERTEDIFSTACK_ROW;

  typedef struct _MIB_IFSTACK_TABLE {
    ULONG NumEntries;
    MIB_IFSTACK_ROW Table[ANY_SIZE];
  } MIB_IFSTACK_TABLE,*PMIB_IFSTACK_TABLE;

  typedef struct _MIB_INVERTEDIFSTACK_TABLE {
    ULONG NumEntries;
    MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE];
  } MIB_INVERTEDIFSTACK_TABLE,*PMIB_INVERTEDIFSTACK_TABLE;

  typedef struct _MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES {
    NL_BANDWIDTH_INFORMATION InboundBandwidthInformation;
    NL_BANDWIDTH_INFORMATION OutboundBandwidthInformation;
  } MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES, *PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES;

  typedef struct _MIB_UNICASTIPADDRESS_ROW {
    SOCKADDR_INET Address;
    NET_LUID InterfaceLuid;
    NET_IFINDEX InterfaceIndex;
    NL_PREFIX_ORIGIN PrefixOrigin;
    NL_SUFFIX_ORIGIN SuffixOrigin;
    ULONG ValidLifetime;
    ULONG PreferredLifetime;
    UINT8 OnLinkPrefixLength;
    BOOLEAN SkipAsSource;
    NL_DAD_STATE DadState;
    SCOPE_ID ScopeId;
    LARGE_INTEGER CreationTimeStamp;
  } MIB_UNICASTIPADDRESS_ROW,*PMIB_UNICASTIPADDRESS_ROW;

  typedef struct _MIB_UNICASTIPADDRESS_TABLE {
    ULONG NumEntries;
    MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE];
  } MIB_UNICASTIPADDRESS_TABLE,*PMIB_UNICASTIPADDRESS_TABLE;

  typedef struct _MIB_ANYCASTIPADDRESS_ROW {
    SOCKADDR_INET Address;
    NET_LUID InterfaceLuid;
    NET_IFINDEX InterfaceIndex;
    SCOPE_ID ScopeId;
  } MIB_ANYCASTIPADDRESS_ROW,*PMIB_ANYCASTIPADDRESS_ROW;

  typedef struct _MIB_ANYCASTIPADDRESS_TABLE {
    ULONG NumEntries;
    MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE];
  } MIB_ANYCASTIPADDRESS_TABLE,*PMIB_ANYCASTIPADDRESS_TABLE;

  typedef struct _MIB_MULTICASTIPADDRESS_ROW {
    SOCKADDR_INET Address;
    NET_IFINDEX InterfaceIndex;
    NET_LUID InterfaceLuid;
    SCOPE_ID ScopeId;
  } MIB_MULTICASTIPADDRESS_ROW,*PMIB_MULTICASTIPADDRESS_ROW;

  typedef struct _MIB_MULTICASTIPADDRESS_TABLE {
    ULONG NumEntries;
    MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE];
  } MIB_MULTICASTIPADDRESS_TABLE,*PMIB_MULTICASTIPADDRESS_TABLE;

  typedef struct _IP_ADDRESS_PREFIX {
    SOCKADDR_INET Prefix;
    UINT8 PrefixLength;
  } IP_ADDRESS_PREFIX,*PIP_ADDRESS_PREFIX;

  typedef struct _MIB_IPFORWARD_ROW2 {
    NET_LUID InterfaceLuid;
    NET_IFINDEX InterfaceIndex;
    IP_ADDRESS_PREFIX DestinationPrefix;
    SOCKADDR_INET NextHop;
    UCHAR SitePrefixLength;
    ULONG ValidLifetime;
    ULONG PreferredLifetime;
    ULONG Metric;
    NL_ROUTE_PROTOCOL Protocol;
    BOOLEAN Loopback;
    BOOLEAN AutoconfigureAddress;
    BOOLEAN Publish;
    BOOLEAN Immortal;
    ULONG Age;
    NL_ROUTE_ORIGIN Origin;
  } MIB_IPFORWARD_ROW2,*PMIB_IPFORWARD_ROW2;

  typedef struct _MIB_IPFORWARD_TABLE2 {
    ULONG NumEntries;
    MIB_IPFORWARD_ROW2 Table[ANY_SIZE];
  } MIB_IPFORWARD_TABLE2,*PMIB_IPFORWARD_TABLE2;

  typedef struct _MIB_IPPATH_ROW {
    SOCKADDR_INET Source;
    SOCKADDR_INET Destination;
    NET_LUID InterfaceLuid;
    NET_IFINDEX InterfaceIndex;
    SOCKADDR_INET CurrentNextHop;
    ULONG PathMtu;
    ULONG RttMean;
    ULONG RttDeviation;
    __C89_NAMELESS union {
      ULONG LastReachable;
      ULONG LastUnreachable;
    };
    BOOLEAN IsReachable;
    ULONG64 LinkTransmitSpeed;
    ULONG64 LinkReceiveSpeed;
  } MIB_IPPATH_ROW,*PMIB_IPPATH_ROW;

  typedef struct _MIB_IPPATH_TABLE {
    ULONG NumEntries;
    MIB_IPPATH_ROW Table[ANY_SIZE];
  } MIB_IPPATH_TABLE,*PMIB_IPPATH_TABLE;

  typedef struct _MIB_IPNET_ROW2 {
    SOCKADDR_INET Address;
    NET_IFINDEX InterfaceIndex;
    NET_LUID InterfaceLuid;
    UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
    ULONG PhysicalAddressLength;
    NL_NEIGHBOR_STATE State;
    __C89_NAMELESS union {
      __C89_NAMELESS struct {
	BOOLEAN IsRouter : 1;
	BOOLEAN IsUnreachable : 1;
      };
      UCHAR Flags;
    };
    union {
      ULONG LastReachable;
      ULONG LastUnreachable;
    } ReachabilityTime;
  } MIB_IPNET_ROW2, *PMIB_IPNET_ROW2;

  typedef struct _MIB_IPNET_TABLE2 {
    ULONG NumEntries;
    MIB_IPNET_ROW2 Table[ANY_SIZE];
  } MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2;

  typedef VOID (NETIOAPI_API_ *PIPINTERFACE_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPINTERFACE_ROW Row, MIB_NOTIFICATION_TYPE NotificationType);
  typedef VOID (NETIOAPI_API_ *PUNICAST_IPADDRESS_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_ROW Row, MIB_NOTIFICATION_TYPE NotificationType);
  typedef VOID (NETIOAPI_API_ *PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_TABLE AddressTable);

  typedef VOID (NETIOAPI_API_ *PTEREDO_PORT_CHANGE_CALLBACK) (PVOID CallerContext, USHORT Port, MIB_NOTIFICATION_TYPE NotificationType);
  typedef VOID (NETIOAPI_API_ *PIPFORWARD_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPFORWARD_ROW2 Row, MIB_NOTIFICATION_TYPE NotificationType);

  NETIO_STATUS NETIOAPI_API_ GetIfEntry2 (PMIB_IF_ROW2 Row);
  NETIO_STATUS NETIOAPI_API_ GetIfTable2 (PMIB_IF_TABLE2 *Table);
  NETIO_STATUS NETIOAPI_API_ GetIfTable2Ex (MIB_IF_TABLE_LEVEL Level, PMIB_IF_TABLE2 *Table);
  NETIO_STATUS NETIOAPI_API_ GetIfStackTable (PMIB_IFSTACK_TABLE *Table);
  NETIO_STATUS NETIOAPI_API_ GetInvertedIfStackTable (PMIB_INVERTEDIFSTACK_TABLE *Table);
  NETIO_STATUS NETIOAPI_API_ GetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row);
  NETIO_STATUS NETIOAPI_API_ GetIpInterfaceTable (ADDRESS_FAMILY Family, PMIB_IPINTERFACE_TABLE *Table);
  VOID NETIOAPI_API_ InitializeIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row);
  NETIO_STATUS NETIOAPI_API_ NotifyIpInterfaceChange (ADDRESS_FAMILY Family, PIPINTERFACE_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
  NETIO_STATUS NETIOAPI_API_ SetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row);
  NETIO_STATUS NETIOAPI_API_ GetIpNetworkConnectionBandwidthEstimates (NET_IFINDEX InterfaceIndex, ADDRESS_FAMILY AddressFamily, PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES BandwidthEstimates);
  NETIO_STATUS NETIOAPI_API_ CreateUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row);
  NETIO_STATUS NETIOAPI_API_ DeleteUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row);
  NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row);
  NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table);
  VOID NETIOAPI_API_ InitializeUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row);
  NETIO_STATUS NETIOAPI_API_ NotifyUnicastIpAddressChange (ADDRESS_FAMILY Family, PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
  NETIO_STATUS NETIOAPI_API_ CreateAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row);
  NETIO_STATUS NETIOAPI_API_ DeleteAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row);
  NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressEntry (PMIB_ANYCASTIPADDRESS_ROW Row);
  NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressTable (ADDRESS_FAMILY Family, PMIB_ANYCASTIPADDRESS_TABLE *Table);
  NETIO_STATUS NETIOAPI_API_ NotifyStableUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table, PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, PVOID CallerContext, HANDLE *NotificationHandle);
  NETIO_STATUS NETIOAPI_API_ SetUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row);
  NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressEntry (PMIB_MULTICASTIPADDRESS_ROW Row);
  NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressTable (ADDRESS_FAMILY Family, PMIB_MULTICASTIPADDRESS_TABLE *Table);
  NETIO_STATUS NETIOAPI_API_ CreateIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row);
  NETIO_STATUS NETIOAPI_API_ DeleteIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row);
  NETIO_STATUS NETIOAPI_API_ GetBestRoute2 (NET_LUID *InterfaceLuid, NET_IFINDEX InterfaceIndex, CONST SOCKADDR_INET *SourceAddress, CONST SOCKADDR_INET *DestinationAddress, ULONG AddressSortOptions, PMIB_IPFORWARD_ROW2 BestRoute, SOCKADDR_INET *BestSourceAddress);
  NETIO_STATUS NETIOAPI_API_ GetIpForwardEntry2 (PMIB_IPFORWARD_ROW2 Row);
  NETIO_STATUS NETIOAPI_API_ GetIpForwardTable2 (ADDRESS_FAMILY Family, PMIB_IPFORWARD_TABLE2 *Table);
  VOID NETIOAPI_API_ InitializeIpForwardEntry (PMIB_IPFORWARD_ROW2 Row);
  NETIO_STATUS NETIOAPI_API_ NotifyRouteChange2 (ADDRESS_FAMILY AddressFamily, PIPFORWARD_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
  NETIO_STATUS NETIOAPI_API_ SetIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Route);
  NETIO_STATUS NETIOAPI_API_ FlushIpPathTable (ADDRESS_FAMILY Family);
  NETIO_STATUS NETIOAPI_API_ GetIpPathEntry (PMIB_IPPATH_ROW Row);
  NETIO_STATUS NETIOAPI_API_ GetIpPathTable (ADDRESS_FAMILY Family, PMIB_IPPATH_TABLE *Table);
  NETIO_STATUS NETIOAPI_API_ CreateIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row);
  NETIO_STATUS NETIOAPI_API_ DeleteIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row);
  NETIO_STATUS NETIOAPI_API_ FlushIpNetTable2 (ADDRESS_FAMILY Family, NET_IFINDEX InterfaceIndex);
  NETIO_STATUS NETIOAPI_API_ GetIpNetEntry2 (PMIB_IPNET_ROW2 Row);
  NETIO_STATUS NETIOAPI_API_ GetIpNetTable2 (ADDRESS_FAMILY Family, PMIB_IPNET_TABLE2 *Table);
  NETIO_STATUS NETIOAPI_API_ ResolveIpNetEntry2 (PMIB_IPNET_ROW2 Row, CONST SOCKADDR_INET *SourceAddress);
  NETIO_STATUS NETIOAPI_API_ SetIpNetEntry2 (PMIB_IPNET_ROW2 Row);
  NETIO_STATUS NETIOAPI_API_ NotifyTeredoPortChange (PTEREDO_PORT_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
  NETIO_STATUS NETIOAPI_API_ GetTeredoPort (USHORT *Port);
  NETIO_STATUS NETIOAPI_API_ CancelMibChangeNotify2 (HANDLE NotificationHandle);
  VOID NETIOAPI_API_ FreeMibTable (PVOID Memory);
  NETIO_STATUS NETIOAPI_API_ CreateSortedAddressPairs (const PSOCKADDR_IN6 SourceAddressList, ULONG SourceAddressCount, const PSOCKADDR_IN6 DestinationAddressList, ULONG DestinationAddressCount, ULONG AddressSortOptions, PSOCKADDR_IN6_PAIR *SortedAddressPairList, ULONG *SortedAddressPairCount);
#endif

  NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidA (CONST CHAR *InterfaceName, NET_LUID *InterfaceLuid);
  NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidW (CONST WCHAR *InterfaceName, NET_LUID *InterfaceLuid);
  NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameA (CONST NET_LUID *InterfaceLuid, PSTR InterfaceName, SIZE_T Length);
  NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameW (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceName, SIZE_T Length);
  NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToIndex (CONST NET_LUID *InterfaceLuid, PNET_IFINDEX InterfaceIndex);
  NETIO_STATUS NETIOAPI_API_ ConvertInterfaceIndexToLuid (NET_IFINDEX InterfaceIndex, PNET_LUID InterfaceLuid);
  NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToAlias (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceAlias, SIZE_T Length);
  NETIO_STATUS NETIOAPI_API_ ConvertInterfaceAliasToLuid (CONST WCHAR *InterfaceAlias, PNET_LUID InterfaceLuid);
  NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToGuid (CONST NET_LUID *InterfaceLuid, GUID *InterfaceGuid);
  NETIO_STATUS NETIOAPI_API_ ConvertInterfaceGuidToLuid (CONST GUID *InterfaceGuid, PNET_LUID InterfaceLuid);
  NET_IFINDEX NETIOAPI_API_ if_nametoindex (PCSTR InterfaceName);
  PCHAR NETIOAPI_API_ if_indextoname (NET_IFINDEX InterfaceIndex, PCHAR InterfaceName);
  NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetCurrentThreadCompartmentId (VOID);
  NETIO_STATUS NETIOAPI_API_ SetCurrentThreadCompartmentId (NET_IF_COMPARTMENT_ID CompartmentId);
  NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetSessionCompartmentId (ULONG SessionId);
  NETIO_STATUS NETIOAPI_API_ SetSessionCompartmentId (ULONG SessionId, NET_IF_COMPARTMENT_ID CompartmentId);
  NETIO_STATUS NETIOAPI_API_ GetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, PNET_IF_COMPARTMENT_ID CompartmentId, PULONG SiteId, PWCHAR NetworkName, ULONG Length);
  NETIO_STATUS NETIOAPI_API_ SetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, NET_IF_COMPARTMENT_ID CompartmentId, CONST WCHAR *NetworkName);
  NETIO_STATUS NETIOAPI_API_ ConvertLengthToIpv4Mask (ULONG MaskLength, PULONG Mask);
  NETIO_STATUS NETIOAPI_API_ ConvertIpv4MaskToLength (ULONG Mask, PUINT8 MaskLength);

#ifdef __cplusplus
}
#endif

#endif
#endif