| 1 | /** |
| 2 | * This file is part of the mingw-w64 runtime package. |
| 3 | * No warranty is given; refer to the file DISCLAIMER within this pack |
| 4 | */ |
| 5 | |
| 6 | #ifndef _NETIOAPI_H_ |
| 7 | #define _NETIOAPI_H_ |
| 8 | |
| 9 | #include <winapifamily.h> |
| 10 | |
| 11 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 12 | |
| 13 | #ifdef __cplusplus |
| 14 | extern "C" { |
| 15 | #endif |
| 16 | |
| 17 | #ifndef ANY_SIZE |
| 18 | #define ANY_SIZE 1 |
| 19 | #endif |
| 20 | |
| 21 | #ifdef __IPHLPAPI_H__ |
| 22 | #define NETIO_STATUS DWORD |
| 23 | #define NETIO_SUCCESS(x) ((x) == NO_ERROR) |
| 24 | #define NETIOAPI_API_ WINAPI |
| 25 | #else |
| 26 | #include <ws2def.h> |
| 27 | #ifndef __CYGWIN__ |
| 28 | #include <ws2ipdef.h> |
| 29 | #endif |
| 30 | #include <iprtrmib.h> |
| 31 | #include <ifdef.h> |
| 32 | #include <nldef.h> |
| 33 | |
| 34 | #define NETIO_STATUS NTSTATUS |
| 35 | #define NETIO_SUCCESS(x) NT_SUCCESS (x) |
| 36 | #define NETIOAPI_API_ NTAPI |
| 37 | #endif |
| 38 | |
| 39 | #define _NETIOAPI_SUCCESS_ |
| 40 | #define NETIOAPI_API NETIO_STATUS NETIOAPI_API_ |
| 41 | |
| 42 | #define IF_NAMESIZE NDIS_IF_MAX_STRING_SIZE |
| 43 | |
| 44 | typedef enum _MIB_NOTIFICATION_TYPE { |
| 45 | MibParameterNotification, |
| 46 | MibAddInstance, |
| 47 | MibDeleteInstance, |
| 48 | MibInitialNotification |
| 49 | } MIB_NOTIFICATION_TYPE,*PMIB_NOTIFICATION_TYPE; |
| 50 | |
| 51 | #ifdef _WS2IPDEF_ |
| 52 | #include <ntddndis.h> |
| 53 | |
| 54 | #define MIB_INVALID_TEREDO_PORT_NUMBER 0 |
| 55 | |
| 56 | typedef enum _MIB_IF_TABLE_LEVEL { |
| 57 | MibIfTableNormal, |
| 58 | MibIfTableRaw |
| 59 | } MIB_IF_TABLE_LEVEL, *PMIB_IF_TABLE_LEVEL; |
| 60 | |
| 61 | typedef struct _MIB_IF_ROW2 { |
| 62 | NET_LUID InterfaceLuid; |
| 63 | NET_IFINDEX InterfaceIndex; |
| 64 | GUID InterfaceGuid; |
| 65 | WCHAR Alias[IF_MAX_STRING_SIZE + 1]; |
| 66 | WCHAR Description[IF_MAX_STRING_SIZE + 1]; |
| 67 | ULONG PhysicalAddressLength; |
| 68 | UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; |
| 69 | UCHAR PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; |
| 70 | ULONG Mtu; |
| 71 | IFTYPE Type; |
| 72 | TUNNEL_TYPE TunnelType; |
| 73 | NDIS_MEDIUM MediaType; |
| 74 | NDIS_PHYSICAL_MEDIUM PhysicalMediumType; |
| 75 | NET_IF_ACCESS_TYPE AccessType; |
| 76 | NET_IF_DIRECTION_TYPE DirectionType; |
| 77 | struct { |
| 78 | BOOLEAN HardwareInterface : 1; |
| 79 | BOOLEAN FilterInterface : 1; |
| 80 | BOOLEAN ConnectorPresent : 1; |
| 81 | BOOLEAN NotAuthenticated : 1; |
| 82 | BOOLEAN NotMediaConnected : 1; |
| 83 | BOOLEAN Paused : 1; |
| 84 | BOOLEAN LowPower : 1; |
| 85 | BOOLEAN EndPointInterface : 1; |
| 86 | } InterfaceAndOperStatusFlags; |
| 87 | IF_OPER_STATUS OperStatus; |
| 88 | NET_IF_ADMIN_STATUS AdminStatus; |
| 89 | NET_IF_MEDIA_CONNECT_STATE MediaConnectState; |
| 90 | NET_IF_NETWORK_GUID NetworkGuid; |
| 91 | NET_IF_CONNECTION_TYPE ConnectionType; |
| 92 | ULONG64 TransmitLinkSpeed; |
| 93 | ULONG64 ReceiveLinkSpeed; |
| 94 | ULONG64 InOctets; |
| 95 | ULONG64 InUcastPkts; |
| 96 | ULONG64 InNUcastPkts; |
| 97 | ULONG64 InDiscards; |
| 98 | ULONG64 InErrors; |
| 99 | ULONG64 InUnknownProtos; |
| 100 | ULONG64 InUcastOctets; |
| 101 | ULONG64 InMulticastOctets; |
| 102 | ULONG64 InBroadcastOctets; |
| 103 | ULONG64 OutOctets; |
| 104 | ULONG64 OutUcastPkts; |
| 105 | ULONG64 OutNUcastPkts; |
| 106 | ULONG64 OutDiscards; |
| 107 | ULONG64 OutErrors; |
| 108 | ULONG64 OutUcastOctets; |
| 109 | ULONG64 OutMulticastOctets; |
| 110 | ULONG64 OutBroadcastOctets; |
| 111 | ULONG64 OutQLen; |
| 112 | } MIB_IF_ROW2,*PMIB_IF_ROW2; |
| 113 | |
| 114 | typedef struct _MIB_IF_TABLE2 { |
| 115 | ULONG NumEntries; |
| 116 | MIB_IF_ROW2 Table[ANY_SIZE]; |
| 117 | } MIB_IF_TABLE2, *PMIB_IF_TABLE2; |
| 118 | |
| 119 | typedef struct _MIB_IPINTERFACE_ROW { |
| 120 | ADDRESS_FAMILY Family; |
| 121 | NET_LUID InterfaceLuid; |
| 122 | NET_IFINDEX InterfaceIndex; |
| 123 | ULONG MaxReassemblySize; |
| 124 | ULONG64 InterfaceIdentifier; |
| 125 | ULONG MinRouterAdvertisementInterval; |
| 126 | ULONG MaxRouterAdvertisementInterval; |
| 127 | BOOLEAN AdvertisingEnabled; |
| 128 | BOOLEAN ForwardingEnabled; |
| 129 | BOOLEAN WeakHostSend; |
| 130 | BOOLEAN WeakHostReceive; |
| 131 | BOOLEAN UseAutomaticMetric; |
| 132 | BOOLEAN UseNeighborUnreachabilityDetection; |
| 133 | BOOLEAN ManagedAddressConfigurationSupported; |
| 134 | BOOLEAN OtherStatefulConfigurationSupported; |
| 135 | BOOLEAN AdvertiseDefaultRoute; |
| 136 | NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior; |
| 137 | ULONG DadTransmits; |
| 138 | ULONG BaseReachableTime; |
| 139 | ULONG RetransmitTime; |
| 140 | ULONG PathMtuDiscoveryTimeout; |
| 141 | NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior; |
| 142 | ULONG LinkLocalAddressTimeout; |
| 143 | ULONG ZoneIndices[ScopeLevelCount]; |
| 144 | ULONG SitePrefixLength; |
| 145 | ULONG Metric; |
| 146 | ULONG NlMtu; |
| 147 | BOOLEAN Connected; |
| 148 | BOOLEAN SupportsWakeUpPatterns; |
| 149 | BOOLEAN SupportsNeighborDiscovery; |
| 150 | BOOLEAN SupportsRouterDiscovery; |
| 151 | ULONG ReachableTime; |
| 152 | NL_INTERFACE_OFFLOAD_ROD TransmitOffload; |
| 153 | NL_INTERFACE_OFFLOAD_ROD ReceiveOffload; |
| 154 | BOOLEAN DisableDefaultRoutes; |
| 155 | } MIB_IPINTERFACE_ROW,*PMIB_IPINTERFACE_ROW; |
| 156 | |
| 157 | typedef struct _MIB_IPINTERFACE_TABLE { |
| 158 | ULONG NumEntries; |
| 159 | MIB_IPINTERFACE_ROW Table[ANY_SIZE]; |
| 160 | } MIB_IPINTERFACE_TABLE,*PMIB_IPINTERFACE_TABLE; |
| 161 | |
| 162 | typedef struct _MIB_IFSTACK_ROW { |
| 163 | NET_IFINDEX HigherLayerInterfaceIndex; |
| 164 | NET_IFINDEX LowerLayerInterfaceIndex; |
| 165 | } MIB_IFSTACK_ROW,*PMIB_IFSTACK_ROW; |
| 166 | |
| 167 | typedef struct _MIB_INVERTEDIFSTACK_ROW { |
| 168 | NET_IFINDEX LowerLayerInterfaceIndex; |
| 169 | NET_IFINDEX HigherLayerInterfaceIndex; |
| 170 | } MIB_INVERTEDIFSTACK_ROW,*PMIB_INVERTEDIFSTACK_ROW; |
| 171 | |
| 172 | typedef struct _MIB_IFSTACK_TABLE { |
| 173 | ULONG NumEntries; |
| 174 | MIB_IFSTACK_ROW Table[ANY_SIZE]; |
| 175 | } MIB_IFSTACK_TABLE,*PMIB_IFSTACK_TABLE; |
| 176 | |
| 177 | typedef struct _MIB_INVERTEDIFSTACK_TABLE { |
| 178 | ULONG NumEntries; |
| 179 | MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE]; |
| 180 | } MIB_INVERTEDIFSTACK_TABLE,*PMIB_INVERTEDIFSTACK_TABLE; |
| 181 | |
| 182 | typedef struct _MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES { |
| 183 | NL_BANDWIDTH_INFORMATION InboundBandwidthInformation; |
| 184 | NL_BANDWIDTH_INFORMATION OutboundBandwidthInformation; |
| 185 | } MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES, *PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES; |
| 186 | |
| 187 | typedef struct _MIB_UNICASTIPADDRESS_ROW { |
| 188 | SOCKADDR_INET Address; |
| 189 | NET_LUID InterfaceLuid; |
| 190 | NET_IFINDEX InterfaceIndex; |
| 191 | NL_PREFIX_ORIGIN PrefixOrigin; |
| 192 | NL_SUFFIX_ORIGIN SuffixOrigin; |
| 193 | ULONG ValidLifetime; |
| 194 | ULONG PreferredLifetime; |
| 195 | UINT8 OnLinkPrefixLength; |
| 196 | BOOLEAN SkipAsSource; |
| 197 | NL_DAD_STATE DadState; |
| 198 | SCOPE_ID ScopeId; |
| 199 | LARGE_INTEGER CreationTimeStamp; |
| 200 | } MIB_UNICASTIPADDRESS_ROW,*PMIB_UNICASTIPADDRESS_ROW; |
| 201 | |
| 202 | typedef struct _MIB_UNICASTIPADDRESS_TABLE { |
| 203 | ULONG NumEntries; |
| 204 | MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE]; |
| 205 | } MIB_UNICASTIPADDRESS_TABLE,*PMIB_UNICASTIPADDRESS_TABLE; |
| 206 | |
| 207 | typedef struct _MIB_ANYCASTIPADDRESS_ROW { |
| 208 | SOCKADDR_INET Address; |
| 209 | NET_LUID InterfaceLuid; |
| 210 | NET_IFINDEX InterfaceIndex; |
| 211 | SCOPE_ID ScopeId; |
| 212 | } MIB_ANYCASTIPADDRESS_ROW,*PMIB_ANYCASTIPADDRESS_ROW; |
| 213 | |
| 214 | typedef struct _MIB_ANYCASTIPADDRESS_TABLE { |
| 215 | ULONG NumEntries; |
| 216 | MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE]; |
| 217 | } MIB_ANYCASTIPADDRESS_TABLE,*PMIB_ANYCASTIPADDRESS_TABLE; |
| 218 | |
| 219 | typedef struct _MIB_MULTICASTIPADDRESS_ROW { |
| 220 | SOCKADDR_INET Address; |
| 221 | NET_IFINDEX InterfaceIndex; |
| 222 | NET_LUID InterfaceLuid; |
| 223 | SCOPE_ID ScopeId; |
| 224 | } MIB_MULTICASTIPADDRESS_ROW,*PMIB_MULTICASTIPADDRESS_ROW; |
| 225 | |
| 226 | typedef struct _MIB_MULTICASTIPADDRESS_TABLE { |
| 227 | ULONG NumEntries; |
| 228 | MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE]; |
| 229 | } MIB_MULTICASTIPADDRESS_TABLE,*PMIB_MULTICASTIPADDRESS_TABLE; |
| 230 | |
| 231 | typedef struct _IP_ADDRESS_PREFIX { |
| 232 | SOCKADDR_INET Prefix; |
| 233 | UINT8 PrefixLength; |
| 234 | } IP_ADDRESS_PREFIX,*PIP_ADDRESS_PREFIX; |
| 235 | |
| 236 | typedef struct _MIB_IPFORWARD_ROW2 { |
| 237 | NET_LUID InterfaceLuid; |
| 238 | NET_IFINDEX InterfaceIndex; |
| 239 | IP_ADDRESS_PREFIX DestinationPrefix; |
| 240 | SOCKADDR_INET NextHop; |
| 241 | UCHAR SitePrefixLength; |
| 242 | ULONG ValidLifetime; |
| 243 | ULONG PreferredLifetime; |
| 244 | ULONG Metric; |
| 245 | NL_ROUTE_PROTOCOL Protocol; |
| 246 | BOOLEAN Loopback; |
| 247 | BOOLEAN AutoconfigureAddress; |
| 248 | BOOLEAN Publish; |
| 249 | BOOLEAN Immortal; |
| 250 | ULONG Age; |
| 251 | NL_ROUTE_ORIGIN Origin; |
| 252 | } MIB_IPFORWARD_ROW2,*PMIB_IPFORWARD_ROW2; |
| 253 | |
| 254 | typedef struct _MIB_IPFORWARD_TABLE2 { |
| 255 | ULONG NumEntries; |
| 256 | MIB_IPFORWARD_ROW2 Table[ANY_SIZE]; |
| 257 | } MIB_IPFORWARD_TABLE2,*PMIB_IPFORWARD_TABLE2; |
| 258 | |
| 259 | typedef struct _MIB_IPPATH_ROW { |
| 260 | SOCKADDR_INET Source; |
| 261 | SOCKADDR_INET Destination; |
| 262 | NET_LUID InterfaceLuid; |
| 263 | NET_IFINDEX InterfaceIndex; |
| 264 | SOCKADDR_INET CurrentNextHop; |
| 265 | ULONG PathMtu; |
| 266 | ULONG RttMean; |
| 267 | ULONG RttDeviation; |
| 268 | __C89_NAMELESS union { |
| 269 | ULONG LastReachable; |
| 270 | ULONG LastUnreachable; |
| 271 | }; |
| 272 | BOOLEAN IsReachable; |
| 273 | ULONG64 LinkTransmitSpeed; |
| 274 | ULONG64 LinkReceiveSpeed; |
| 275 | } MIB_IPPATH_ROW,*PMIB_IPPATH_ROW; |
| 276 | |
| 277 | typedef struct _MIB_IPPATH_TABLE { |
| 278 | ULONG NumEntries; |
| 279 | MIB_IPPATH_ROW Table[ANY_SIZE]; |
| 280 | } MIB_IPPATH_TABLE,*PMIB_IPPATH_TABLE; |
| 281 | |
| 282 | typedef struct _MIB_IPNET_ROW2 { |
| 283 | SOCKADDR_INET Address; |
| 284 | NET_IFINDEX InterfaceIndex; |
| 285 | NET_LUID InterfaceLuid; |
| 286 | UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; |
| 287 | ULONG PhysicalAddressLength; |
| 288 | NL_NEIGHBOR_STATE State; |
| 289 | __C89_NAMELESS union { |
| 290 | __C89_NAMELESS struct { |
| 291 | 	BOOLEAN IsRouter : 1; |
| 292 | 	BOOLEAN IsUnreachable : 1; |
| 293 | }; |
| 294 | UCHAR Flags; |
| 295 | }; |
| 296 | union { |
| 297 | ULONG LastReachable; |
| 298 | ULONG LastUnreachable; |
| 299 | } ReachabilityTime; |
| 300 | } MIB_IPNET_ROW2, *PMIB_IPNET_ROW2; |
| 301 | |
| 302 | typedef struct _MIB_IPNET_TABLE2 { |
| 303 | ULONG NumEntries; |
| 304 | MIB_IPNET_ROW2 Table[ANY_SIZE]; |
| 305 | } MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2; |
| 306 | |
| 307 | typedef VOID (NETIOAPI_API_ *PIPINTERFACE_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPINTERFACE_ROW Row, MIB_NOTIFICATION_TYPE NotificationType); |
| 308 | typedef VOID (NETIOAPI_API_ *PUNICAST_IPADDRESS_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_ROW Row, MIB_NOTIFICATION_TYPE NotificationType); |
| 309 | typedef VOID (NETIOAPI_API_ *PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_TABLE AddressTable); |
| 310 | |
| 311 | typedef VOID (NETIOAPI_API_ *PTEREDO_PORT_CHANGE_CALLBACK) (PVOID CallerContext, USHORT Port, MIB_NOTIFICATION_TYPE NotificationType); |
| 312 | typedef VOID (NETIOAPI_API_ *PIPFORWARD_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPFORWARD_ROW2 Row, MIB_NOTIFICATION_TYPE NotificationType); |
| 313 | |
| 314 | NETIO_STATUS NETIOAPI_API_ GetIfEntry2 (PMIB_IF_ROW2 Row); |
| 315 | NETIO_STATUS NETIOAPI_API_ GetIfTable2 (PMIB_IF_TABLE2 *Table); |
| 316 | NETIO_STATUS NETIOAPI_API_ GetIfTable2Ex (MIB_IF_TABLE_LEVEL Level, PMIB_IF_TABLE2 *Table); |
| 317 | NETIO_STATUS NETIOAPI_API_ GetIfStackTable (PMIB_IFSTACK_TABLE *Table); |
| 318 | NETIO_STATUS NETIOAPI_API_ GetInvertedIfStackTable (PMIB_INVERTEDIFSTACK_TABLE *Table); |
| 319 | NETIO_STATUS NETIOAPI_API_ GetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row); |
| 320 | NETIO_STATUS NETIOAPI_API_ GetIpInterfaceTable (ADDRESS_FAMILY Family, PMIB_IPINTERFACE_TABLE *Table); |
| 321 | VOID NETIOAPI_API_ InitializeIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row); |
| 322 | NETIO_STATUS NETIOAPI_API_ NotifyIpInterfaceChange (ADDRESS_FAMILY Family, PIPINTERFACE_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); |
| 323 | NETIO_STATUS NETIOAPI_API_ SetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row); |
| 324 | NETIO_STATUS NETIOAPI_API_ GetIpNetworkConnectionBandwidthEstimates (NET_IFINDEX InterfaceIndex, ADDRESS_FAMILY AddressFamily, PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES BandwidthEstimates); |
| 325 | NETIO_STATUS NETIOAPI_API_ CreateUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row); |
| 326 | NETIO_STATUS NETIOAPI_API_ DeleteUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row); |
| 327 | NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row); |
| 328 | NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table); |
| 329 | VOID NETIOAPI_API_ InitializeUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row); |
| 330 | NETIO_STATUS NETIOAPI_API_ NotifyUnicastIpAddressChange (ADDRESS_FAMILY Family, PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); |
| 331 | NETIO_STATUS NETIOAPI_API_ CreateAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row); |
| 332 | NETIO_STATUS NETIOAPI_API_ DeleteAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row); |
| 333 | NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressEntry (PMIB_ANYCASTIPADDRESS_ROW Row); |
| 334 | NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressTable (ADDRESS_FAMILY Family, PMIB_ANYCASTIPADDRESS_TABLE *Table); |
| 335 | NETIO_STATUS NETIOAPI_API_ NotifyStableUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table, PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, PVOID CallerContext, HANDLE *NotificationHandle); |
| 336 | NETIO_STATUS NETIOAPI_API_ SetUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row); |
| 337 | NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressEntry (PMIB_MULTICASTIPADDRESS_ROW Row); |
| 338 | NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressTable (ADDRESS_FAMILY Family, PMIB_MULTICASTIPADDRESS_TABLE *Table); |
| 339 | NETIO_STATUS NETIOAPI_API_ CreateIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row); |
| 340 | NETIO_STATUS NETIOAPI_API_ DeleteIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row); |
| 341 | 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); |
| 342 | NETIO_STATUS NETIOAPI_API_ GetIpForwardEntry2 (PMIB_IPFORWARD_ROW2 Row); |
| 343 | NETIO_STATUS NETIOAPI_API_ GetIpForwardTable2 (ADDRESS_FAMILY Family, PMIB_IPFORWARD_TABLE2 *Table); |
| 344 | VOID NETIOAPI_API_ InitializeIpForwardEntry (PMIB_IPFORWARD_ROW2 Row); |
| 345 | NETIO_STATUS NETIOAPI_API_ NotifyRouteChange2 (ADDRESS_FAMILY AddressFamily, PIPFORWARD_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); |
| 346 | NETIO_STATUS NETIOAPI_API_ SetIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Route); |
| 347 | NETIO_STATUS NETIOAPI_API_ FlushIpPathTable (ADDRESS_FAMILY Family); |
| 348 | NETIO_STATUS NETIOAPI_API_ GetIpPathEntry (PMIB_IPPATH_ROW Row); |
| 349 | NETIO_STATUS NETIOAPI_API_ GetIpPathTable (ADDRESS_FAMILY Family, PMIB_IPPATH_TABLE *Table); |
| 350 | NETIO_STATUS NETIOAPI_API_ CreateIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row); |
| 351 | NETIO_STATUS NETIOAPI_API_ DeleteIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row); |
| 352 | NETIO_STATUS NETIOAPI_API_ FlushIpNetTable2 (ADDRESS_FAMILY Family, NET_IFINDEX InterfaceIndex); |
| 353 | NETIO_STATUS NETIOAPI_API_ GetIpNetEntry2 (PMIB_IPNET_ROW2 Row); |
| 354 | NETIO_STATUS NETIOAPI_API_ GetIpNetTable2 (ADDRESS_FAMILY Family, PMIB_IPNET_TABLE2 *Table); |
| 355 | NETIO_STATUS NETIOAPI_API_ ResolveIpNetEntry2 (PMIB_IPNET_ROW2 Row, CONST SOCKADDR_INET *SourceAddress); |
| 356 | NETIO_STATUS NETIOAPI_API_ SetIpNetEntry2 (PMIB_IPNET_ROW2 Row); |
| 357 | NETIO_STATUS NETIOAPI_API_ NotifyTeredoPortChange (PTEREDO_PORT_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle); |
| 358 | NETIO_STATUS NETIOAPI_API_ GetTeredoPort (USHORT *Port); |
| 359 | NETIO_STATUS NETIOAPI_API_ CancelMibChangeNotify2 (HANDLE NotificationHandle); |
| 360 | VOID NETIOAPI_API_ FreeMibTable (PVOID Memory); |
| 361 | 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); |
| 362 | #endif |
| 363 | |
| 364 | NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidA (CONST CHAR *InterfaceName, NET_LUID *InterfaceLuid); |
| 365 | NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidW (CONST WCHAR *InterfaceName, NET_LUID *InterfaceLuid); |
| 366 | NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameA (CONST NET_LUID *InterfaceLuid, PSTR InterfaceName, SIZE_T Length); |
| 367 | NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameW (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceName, SIZE_T Length); |
| 368 | NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToIndex (CONST NET_LUID *InterfaceLuid, PNET_IFINDEX InterfaceIndex); |
| 369 | NETIO_STATUS NETIOAPI_API_ ConvertInterfaceIndexToLuid (NET_IFINDEX InterfaceIndex, PNET_LUID InterfaceLuid); |
| 370 | NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToAlias (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceAlias, SIZE_T Length); |
| 371 | NETIO_STATUS NETIOAPI_API_ ConvertInterfaceAliasToLuid (CONST WCHAR *InterfaceAlias, PNET_LUID InterfaceLuid); |
| 372 | NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToGuid (CONST NET_LUID *InterfaceLuid, GUID *InterfaceGuid); |
| 373 | NETIO_STATUS NETIOAPI_API_ ConvertInterfaceGuidToLuid (CONST GUID *InterfaceGuid, PNET_LUID InterfaceLuid); |
| 374 | NET_IFINDEX NETIOAPI_API_ if_nametoindex (PCSTR InterfaceName); |
| 375 | PCHAR NETIOAPI_API_ if_indextoname (NET_IFINDEX InterfaceIndex, PCHAR InterfaceName); |
| 376 | NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetCurrentThreadCompartmentId (VOID); |
| 377 | NETIO_STATUS NETIOAPI_API_ SetCurrentThreadCompartmentId (NET_IF_COMPARTMENT_ID CompartmentId); |
| 378 | NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetSessionCompartmentId (ULONG SessionId); |
| 379 | NETIO_STATUS NETIOAPI_API_ SetSessionCompartmentId (ULONG SessionId, NET_IF_COMPARTMENT_ID CompartmentId); |
| 380 | NETIO_STATUS NETIOAPI_API_ GetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, PNET_IF_COMPARTMENT_ID CompartmentId, PULONG SiteId, PWCHAR NetworkName, ULONG Length); |
| 381 | NETIO_STATUS NETIOAPI_API_ SetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, NET_IF_COMPARTMENT_ID CompartmentId, CONST WCHAR *NetworkName); |
| 382 | NETIO_STATUS NETIOAPI_API_ ConvertLengthToIpv4Mask (ULONG MaskLength, PULONG Mask); |
| 383 | NETIO_STATUS NETIOAPI_API_ ConvertIpv4MaskToLength (ULONG Mask, PUINT8 MaskLength); |
| 384 | |
| 385 | #ifdef __cplusplus |
| 386 | } |
| 387 | #endif |
| 388 | |
| 389 | #endif |
| 390 | #endif |