1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _INC_NETIOAPI 7 #define _INC_NETIOAPI 8 9 #include <ws2def.h> 10 #include <iprtrmib.h> 11 #include <ifdef.h> 12 #include <ntddndis.h> 13 14 #ifndef ANY_SIZE 15 #define ANY_SIZE 1 16 #endif 17 18 #if (_WIN32_WINNT >= 0x0600) 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 #ifdef __IPHLPAPI_H__ 25 #define NETIO_STATUS DWORD 26 #define NETIOAPI_API_ WINAPI 27 #else 28 #define NETIO_STATUS NTSTATUS 29 #define NETIOAPI_API_ NTAPI 30 #endif 31 32 #define NETIOAPI_API NETIO_STATUS NETIOAPI_API_ 33 #define ConvertInterfaceLuidToName __MINGW_NAME_AW(ConvertInterfaceLuidToName) 34 #define ConvertInterfaceNameToLuid __MINGW_NAME_AW(ConvertInterfaceNameToLuid) 35 36 typedef enum _MIB_NOTIFICATION_TYPE { 37 MibParameterNotification = 0, 38 MibAddInstance = 1, 39 MibDeleteInstance = 2, 40 MibInitialNotification = 3 41 } MIB_NOTIFICATION_TYPE, *PMIB_NOTIFICATION_TYPE; 42 43 typedef struct _MIB_ANYCASTIPADDRESS_ROW { 44 SOCKADDR_INET Address; 45 NET_LUID InterfaceLuid; 46 NET_IFINDEX InterfaceIndex; 47 SCOPE_ID ScopeId; 48 } MIB_ANYCASTIPADDRESS_ROW, *PMIB_ANYCASTIPADDRESS_ROW; 49 50 typedef struct _MIB_ANYCASTIPADDRESS_TABLE { 51 ULONG NumEntries; 52 MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE]; 53 } MIB_ANYCASTIPADDRESS_TABLE, *PMIB_ANYCASTIPADDRESS_TABLE; 54 55 typedef struct _IP_ADDRESS_PREFIX { 56 SOCKADDR_INET Prefix; 57 UINT8 PrefixLength; 58 } IP_ADDRESS_PREFIX, *PIP_ADDRESS_PREFIX; 59 60 typedef struct _MIB_IPFORWARD_ROW2 { 61 NET_LUID InterfaceLuid; 62 NET_IFINDEX InterfaceIndex; 63 IP_ADDRESS_PREFIX DestinationPrefix; 64 SOCKADDR_INET NextHop; 65 UCHAR SitePrefixLength; 66 ULONG ValidLifetime; 67 ULONG PreferredLifetime; 68 ULONG Metric; 69 NL_ROUTE_PROTOCOL Protocol; 70 BOOLEAN Loopback; 71 BOOLEAN AutoconfigureAddress; 72 BOOLEAN Publish; 73 BOOLEAN Immortal; 74 ULONG Age; 75 NL_ROUTE_ORIGIN Origin; 76 } MIB_IPFORWARD_ROW2, *PMIB_IPFORWARD_ROW2; 77 78 typedef struct _MIB_IPNET_ROW2 { 79 SOCKADDR_INET Address; 80 NET_IFINDEX InterfaceIndex; 81 NET_LUID InterfaceLuid; 82 UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; 83 ULONG PhysicalAddressLength; 84 NL_NEIGHBOR_STATE State; 85 __C89_NAMELESS union { 86 __C89_NAMELESS struct { 87 BOOLEAN IsRouter :1; 88 BOOLEAN IsUnreachable :1; 89 }; 90 UCHAR Flags; 91 }; 92 union { 93 ULONG LastReachable; 94 ULONG LastUnreachable; 95 } ReachabilityTime; 96 } MIB_IPNET_ROW2, *PMIB_IPNET_ROW2; 97 98 typedef struct _MIB_IPNET_TABLE2 { 99 ULONG NumEntries; 100 MIB_IPNET_ROW2 Table[ANY_SIZE]; 101 } MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2; 102 103 typedef struct _MIB_IPFORWARD_TABLE2 { 104 ULONG NumEntries; 105 MIB_IPFORWARD_ROW2 Table[ANY_SIZE]; 106 } MIB_IPFORWARD_TABLE2, *PMIB_IPFORWARD_TABLE2; 107 108 typedef struct _MIB_IPINTERFACE_ROW { 109 ADDRESS_FAMILY Family; 110 NET_LUID InterfaceLuid; 111 NET_IFINDEX InterfaceIndex; 112 ULONG MaxReassemblySize; 113 ULONG64 InterfaceIdentifier; 114 ULONG MinRouterAdvertisementInterval; 115 ULONG MaxRouterAdvertisementInterval; 116 BOOLEAN AdvertisingEnabled; 117 BOOLEAN ForwardingEnabled; 118 BOOLEAN WeakHostSend; 119 BOOLEAN WeakHostReceive; 120 BOOLEAN UseAutomaticMetric; 121 BOOLEAN UseNeighborUnreachabilityDetection; 122 BOOLEAN ManagedAddressConfigurationSupported; 123 BOOLEAN OtherStatefulConfigurationSupported; 124 BOOLEAN AdvertiseDefaultRoute; 125 NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior; 126 ULONG DadTransmits; 127 ULONG BaseReachableTime; 128 ULONG RetransmitTime; 129 ULONG PathMtuDiscoveryTimeout; 130 NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior; 131 ULONG LinkLocalAddressTimeout; 132 ULONG ZoneIndices[ScopeLevelCount]; 133 ULONG SitePrefixLength; 134 ULONG Metric; 135 ULONG NlMtu; 136 BOOLEAN Connected; 137 BOOLEAN SupportsWakeUpPatterns; 138 BOOLEAN SupportsNeighborDiscovery; 139 BOOLEAN SupportsRouterDiscovery; 140 ULONG ReachableTime; 141 NL_INTERFACE_OFFLOAD_ROD TransmitOffload; 142 NL_INTERFACE_OFFLOAD_ROD ReceiveOffload; 143 BOOLEAN DisableDefaultRoutes; 144 } MIB_IPINTERFACE_ROW, *PMIB_IPINTERFACE_ROW; 145 146 typedef struct _MIB_IPINTERFACE_TABLE { 147 ULONG NumEntries; 148 MIB_IPINTERFACE_ROW Table[ANY_SIZE]; 149 } MIB_IPINTERFACE_TABLE, *PMIB_IPINTERFACE_TABLE; 150 151 typedef struct _MIB_UNICASTIPADDRESS_ROW { 152 SOCKADDR_INET Address; 153 NET_LUID InterfaceLuid; 154 NET_IFINDEX InterfaceIndex; 155 NL_PREFIX_ORIGIN PrefixOrigin; 156 NL_SUFFIX_ORIGIN SuffixOrigin; 157 ULONG ValidLifetime; 158 ULONG PreferredLifetime; 159 UINT8 OnLinkPrefixLength; 160 BOOLEAN SkipAsSource; 161 NL_DAD_STATE DadState; 162 SCOPE_ID ScopeId; 163 LARGE_INTEGER CreationTimeStamp; 164 } MIB_UNICASTIPADDRESS_ROW, *PMIB_UNICASTIPADDRESS_ROW; 165 166 typedef struct _MIB_UNICASTIPADDRESS_TABLE { 167 ULONG NumEntries; 168 MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE]; 169 } MIB_UNICASTIPADDRESS_TABLE, *PMIB_UNICASTIPADDRESS_TABLE; 170 171 typedef struct _MIB_IF_ROW2 { 172 NET_LUID InterfaceLuid; 173 NET_IFINDEX InterfaceIndex; 174 GUID InterfaceGuid; 175 WCHAR Alias[IF_MAX_STRING_SIZE + 1]; 176 WCHAR Description[IF_MAX_STRING_SIZE + 1]; 177 ULONG PhysicalAddressLength; 178 UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; 179 UCHAR PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH]; 180 ULONG Mtu; 181 IFTYPE Type; 182 TUNNEL_TYPE TunnelType; 183 NDIS_MEDIUM MediaType; 184 NDIS_PHYSICAL_MEDIUM PhysicalMediumType; 185 NET_IF_ACCESS_TYPE AccessType; 186 NET_IF_DIRECTION_TYPE DirectionType; 187 struct { 188 BOOLEAN HardwareInterface :1; 189 BOOLEAN FilterInterface :1; 190 BOOLEAN ConnectorPresent :1; 191 BOOLEAN NotAuthenticated :1; 192 BOOLEAN NotMediaConnected :1; 193 BOOLEAN Paused :1; 194 BOOLEAN LowPower :1; 195 BOOLEAN EndPointInterface :1; 196 } InterfaceAndOperStatusFlags; 197 IF_OPER_STATUS OperStatus; 198 NET_IF_ADMIN_STATUS AdminStatus; 199 NET_IF_MEDIA_CONNECT_STATE MediaConnectState; 200 NET_IF_NETWORK_GUID NetworkGuid; 201 NET_IF_CONNECTION_TYPE ConnectionType; 202 ULONG64 TransmitLinkSpeed; 203 ULONG64 ReceiveLinkSpeed; 204 ULONG64 InOctets; 205 ULONG64 InUcastPkts; 206 ULONG64 InNUcastPkts; 207 ULONG64 InDiscards; 208 ULONG64 InErrors; 209 ULONG64 InUnknownProtos; 210 ULONG64 InUcastOctets; 211 ULONG64 InMulticastOctets; 212 ULONG64 InBroadcastOctets; 213 ULONG64 OutOctets; 214 ULONG64 OutUcastPkts; 215 ULONG64 OutNUcastPkts; 216 ULONG64 OutDiscards; 217 ULONG64 OutErrors; 218 ULONG64 OutUcastOctets; 219 ULONG64 OutMulticastOctets; 220 ULONG64 OutBroadcastOctets; 221 ULONG64 OutQLen; 222 } MIB_IF_ROW2, *PMIB_IF_ROW2; 223 224 typedef struct _MIB_IF_TABLE2 { 225 ULONG NumEntries; 226 MIB_IF_ROW2 Table[ANY_SIZE]; 227 } MIB_IF_TABLE2, *PMIB_IF_TABLE2; 228 229 typedef struct _MIB_IFSTACK_ROW { 230 NET_IFINDEX HigherLayerInterfaceIndex; 231 NET_IFINDEX LowerLayerInterfaceIndex; 232 } MIB_IFSTACK_ROW, *PMIB_IFSTACK_ROW; 233 234 typedef struct _MIB_IFSTACK_TABLE { 235 ULONG NumEntries; 236 MIB_IFSTACK_ROW Table[ANY_SIZE]; 237 } MIB_IFSTACK_TABLE, *PMIB_IFSTACK_TABLE; 238 239 typedef struct _MIB_INVERTEDIFSTACK_ROW { 240 NET_IFINDEX LowerLayerInterfaceIndex; 241 NET_IFINDEX HigherLayerInterfaceIndex; 242 } MIB_INVERTEDIFSTACK_ROW, *PMIB_INVERTEDIFSTACK_ROW; 243 244 typedef struct _MIB_INVERTEDIFSTACK_TABLE { 245 ULONG NumEntries; 246 MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE]; 247 } MIB_INVERTEDIFSTACK_TABLE, *PMIB_INVERTEDIFSTACK_TABLE; 248 249 typedef struct _MIB_IPPATH_ROW { 250 SOCKADDR_INET Source; 251 SOCKADDR_INET Destination; 252 NET_LUID InterfaceLuid; 253 NET_IFINDEX InterfaceIndex; 254 SOCKADDR_INET CurrentNextHop; 255 ULONG PathMtu; 256 ULONG RttMean; 257 ULONG RttDeviation; 258 __C89_NAMELESS union { 259 ULONG LastReachable; 260 ULONG LastUnreachable; 261 }; 262 BOOLEAN IsReachable; 263 ULONG64 LinkTransmitSpeed; 264 ULONG64 LinkReceiveSpeed; 265 } MIB_IPPATH_ROW, *PMIB_IPPATH_ROW; 266 267 typedef struct _MIB_IPPATH_TABLE { 268 ULONG NumEntries; 269 MIB_IPPATH_ROW Table[ANY_SIZE]; 270 } MIB_IPPATH_TABLE, *PMIB_IPPATH_TABLE; 271 272 typedef struct _MIB_MULTICASTIPADDRESS_ROW { 273 SOCKADDR_INET Address; 274 NET_IFINDEX InterfaceIndex; 275 NET_LUID InterfaceLuid; 276 SCOPE_ID ScopeId; 277 } MIB_MULTICASTIPADDRESS_ROW, *PMIB_MULTICASTIPADDRESS_ROW; 278 279 typedef struct _MIB_MULTICASTIPADDRESS_TABLE { 280 ULONG NumEntries; 281 MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE]; 282 } MIB_MULTICASTIPADDRESS_TABLE, *PMIB_MULTICASTIPADDRESS_TABLE; 283 284 NETIOAPI_API CancelMibChangeNotify2( 285 HANDLE NotificationHandle 286 ); 287 288 NETIO_STATUS WINAPI ConvertInterfaceAliasToLuid( 289 const WCHAR *InterfaceAlias, 290 PNET_LUID InterfaceLuid 291 ); 292 293 NETIO_STATUS WINAPI ConvertInterfaceLuidToNameA( 294 const NET_LUID *InterfaceLuid, 295 PSTR InterfaceName, 296 SIZE_T Length 297 ); 298 299 NETIO_STATUS WINAPI ConvertInterfaceLuidToNameW( 300 const NET_LUID *InterfaceLuid, 301 PWSTR InterfaceName, 302 SIZE_T Length 303 ); 304 305 NETIO_STATUS WINAPI ConvertInterfaceNameToLuidA( 306 const CHAR *InterfaceName, 307 PNET_LUID InterfaceLuid 308 ); 309 310 NETIO_STATUS WINAPI ConvertInterfaceNameToLuidW( 311 const WCHAR *InterfaceName, 312 PNET_LUID InterfaceLuid 313 ); 314 315 PCHAR WINAPI if_indextoname( 316 NET_IFINDEX InterfaceIndex, 317 PCHAR InterfaceName 318 ); 319 320 NET_IFINDEX WINAPI if_nametoindex( 321 PCSTR InterfaceName 322 ); 323 324 NETIO_STATUS WINAPI ConvertInterfaceGuidToLuid( 325 const GUID *InterfaceGuid, 326 PNET_LUID InterfaceLuid 327 ); 328 329 NETIO_STATUS WINAPI ConvertInterfaceIndexToLuid( 330 NET_IFINDEX InterfaceIndex, 331 PNET_LUID InterfaceLuid 332 ); 333 334 NETIO_STATUS WINAPI ConvertInterfaceLuidToAlias( 335 const NET_LUID *InterfaceLuid, 336 PWSTR InterfaceAlias, 337 SIZE_T Length 338 ); 339 340 NETIO_STATUS WINAPI ConvertInterfaceLuidToGuid( 341 const NET_LUID *InterfaceLuid, 342 GUID *InterfaceGuid 343 ); 344 345 NETIO_STATUS WINAPI ConvertInterfaceLuidToIndex( 346 const NET_LUID *InterfaceLuid, 347 PNET_IFINDEX InterfaceIndex 348 ); 349 350 NETIO_STATUS WINAPI ConvertIpv4MaskToLength( 351 ULONG Mask, 352 PUINT8 MaskLength 353 ); 354 355 NETIO_STATUS WINAPI ConvertLengthToIpv4Mask( 356 ULONG MaskLength, 357 PULONG Mask 358 ); 359 360 NETIOAPI_API CreateAnycastIpAddressEntry( 361 const MIB_ANYCASTIPADDRESS_ROW *Row 362 ); 363 364 NETIOAPI_API CreateIpForwardEntry2( 365 const MIB_IPFORWARD_ROW2 *Row 366 ); 367 368 NETIOAPI_API GetIpNetTable2( 369 ADDRESS_FAMILY Family, 370 PMIB_IPNET_TABLE2 *Table 371 ); 372 373 NETIOAPI_API GetIpNetEntry2( 374 PMIB_IPNET_ROW2 Row 375 ); 376 377 NETIOAPI_API CreateIpNetEntry2( 378 const MIB_IPNET_ROW2 *Row 379 ); 380 381 NETIOAPI_API CreateSortedAddressPairs( 382 const PSOCKADDR_IN6 SourceAddressList, 383 ULONG SourceAddressCount, 384 const PSOCKADDR_IN6 DestinationAddressList, 385 ULONG DestinationAddressCount, 386 ULONG AddressSortOptions, 387 PSOCKADDR_IN6_PAIR *SortedAddressPairList, 388 ULONG *SortedAddressPairCount 389 ); 390 391 NETIOAPI_API CreateIpNetEntry2( 392 const MIB_IPNET_ROW2 *Row 393 ); 394 395 NETIOAPI_API CreateUnicastIpAddressEntry( 396 const MIB_UNICASTIPADDRESS_ROW *Row 397 ); 398 399 NETIOAPI_API DeleteIpForwardEntry2( 400 const MIB_IPFORWARD_ROW2 *Row 401 ); 402 403 NETIOAPI_API GetIpForwardTable2( 404 ADDRESS_FAMILY Family, 405 PMIB_IPFORWARD_TABLE2 *Table 406 ); 407 408 VOID NETIOAPI_API_ FreeMibTable( 409 PVOID Memory 410 ); 411 412 NETIOAPI_API DeleteIpNetEntry2( 413 const MIB_IPNET_ROW2 *Row 414 ); 415 416 NETIOAPI_API GetIpNetTable2( 417 ADDRESS_FAMILY Family, 418 PMIB_IPNET_TABLE2 *Table 419 ); 420 421 NETIOAPI_API DeleteUnicastIpAddressEntry( 422 const MIB_UNICASTIPADDRESS_ROW *Row 423 ); 424 425 NETIOAPI_API GetUnicastIpAddressEntry( 426 PMIB_UNICASTIPADDRESS_ROW Row 427 ); 428 429 NETIOAPI_API DeleteAnycastIpAddressEntry( 430 const MIB_ANYCASTIPADDRESS_ROW *Row 431 ); 432 433 NETIOAPI_API FlushIpNetTable2( 434 ADDRESS_FAMILY Family, 435 NET_IFINDEX InterfaceIndex 436 ); 437 438 NETIOAPI_API FlushIpPathTable( 439 ADDRESS_FAMILY Family 440 ); 441 442 NETIOAPI_API GetAnycastIpAddressEntry( 443 PMIB_ANYCASTIPADDRESS_ROW Row 444 ); 445 446 NETIOAPI_API GetAnycastIpAddressTable( 447 ADDRESS_FAMILY Family, 448 PMIB_ANYCASTIPADDRESS_TABLE *Table 449 ); 450 451 NETIOAPI_API GetBestRoute2( 452 NET_LUID *InterfaceLuid, 453 NET_IFINDEX InterfaceIndex, 454 const SOCKADDR_INET *SourceAddress, 455 const SOCKADDR_INET *DestinationAddress, 456 ULONG AddressSortOptions, 457 PMIB_IPFORWARD_ROW2 BestRoute, 458 SOCKADDR_INET *BestSourceAddress 459 ); 460 461 NETIOAPI_API GetIfEntry2( 462 PMIB_IF_ROW2 Row 463 ); 464 465 NETIOAPI_API GetIfTable2( 466 PMIB_IF_TABLE2 *Table 467 ); 468 469 NETIOAPI_API GetIfStackTable( 470 PMIB_IFSTACK_TABLE *Table 471 ); 472 473 typedef enum _MIB_IF_TABLE_LEVEL { 474 MibIfTableNormal = 0, 475 MibIfTableRaw = 1 476 } MIB_IF_TABLE_LEVEL, *PMIB_IF_TABLE_LEVEL; 477 478 NETIOAPI_API GetIfTable2Ex( 479 MIB_IF_TABLE_LEVEL Level, 480 PMIB_IF_TABLE2 *Table 481 ); 482 483 NETIOAPI_API GetInvertedIfStackTable( 484 PMIB_INVERTEDIFSTACK_TABLE *Table 485 ); 486 487 NETIOAPI_API GetIpForwardEntry2( 488 PMIB_IPFORWARD_ROW2 Row 489 ); 490 491 NETIOAPI_API GetIpInterfaceEntry( 492 PMIB_IPINTERFACE_ROW Row 493 ); 494 495 NETIOAPI_API GetIpInterfaceTable( 496 ADDRESS_FAMILY Family, 497 PMIB_IPINTERFACE_TABLE *Table 498 ); 499 500 NETIOAPI_API GetIpNetEntry2( 501 PMIB_IPNET_ROW2 Row 502 ); 503 504 NETIOAPI_API GetIpPathEntry( 505 PMIB_IPPATH_ROW Row 506 ); 507 508 NETIOAPI_API GetIpPathTable( 509 ADDRESS_FAMILY Family, 510 PMIB_IPPATH_TABLE *Table 511 ); 512 513 NETIOAPI_API GetMulticastIpAddressEntry( 514 PMIB_MULTICASTIPADDRESS_ROW Row 515 ); 516 517 NETIOAPI_API GetMulticastIpAddressTable( 518 ADDRESS_FAMILY Family, 519 PMIB_MULTICASTIPADDRESS_TABLE *Table 520 ); 521 522 NETIOAPI_API GetTeredoPort( 523 USHORT *Port 524 ); 525 526 typedef void (WINAPI *PTEREDO_PORT_CHANGE_CALLBACK)(void* callerContext, USHORT Port, MIB_NOTIFICATION_TYPE type); 527 528 NETIOAPI_API NotifyTeredoPortChange( 529 PTEREDO_PORT_CHANGE_CALLBACK Callback, 530 PVOID CallerContext, 531 BOOLEAN InitialNotification, 532 HANDLE *NotificationHandle 533 ); 534 535 typedef void (WINAPI *PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK)(void* callerContext, MIB_UNICASTIPADDRESS_TABLE *AddressTable); 536 537 NETIOAPI_API NotifyStableUnicastIpAddressTable( 538 ADDRESS_FAMILY Family, 539 PMIB_UNICASTIPADDRESS_TABLE *Table, 540 PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, 541 PVOID CallerContext, 542 HANDLE *NotificationHandle 543 ); 544 545 typedef void (WINAPI *PUNICAST_IPADDRESS_CHANGE_CALLBACK)(void* callerContext, PMIB_UNICASTIPADDRESS_ROW row, MIB_NOTIFICATION_TYPE type); 546 547 NETIOAPI_API NotifyUnicastIpAddressChange( 548 ADDRESS_FAMILY Family, 549 PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback, 550 PVOID CallerContext, 551 BOOLEAN InitialNotification, 552 HANDLE *NotificationHandle 553 ); 554 555 NETIOAPI_API GetUnicastIpAddressTable( 556 ADDRESS_FAMILY Family, 557 PMIB_UNICASTIPADDRESS_TABLE *Table 558 ); 559 560 typedef VOID (*PIPINTERFACE_CHANGE_CALLBACK) ( 561 PVOID CallerContext, PMIB_IPINTERFACE_ROW Row, 562 MIB_NOTIFICATION_TYPE NotificationType 563 ); 564 565 NETIOAPI_API NotifyIpInterfaceChange( 566 ADDRESS_FAMILY Family, 567 PIPINTERFACE_CHANGE_CALLBACK Callback, 568 PVOID CallerContext, 569 BOOLEAN InitialNotification, 570 HANDLE *NotificationHandle 571 ); 572 573 typedef LPVOID PIPFORWARD_CHANGE_CALLBACK; 574 575 NETIOAPI_API NotifyRouteChange2( 576 ADDRESS_FAMILY Family, 577 PIPFORWARD_CHANGE_CALLBACK Callback, 578 PVOID CallerContext, 579 BOOLEAN InitialNotification, 580 HANDLE *NotificationHandle 581 ); 582 583 NETIOAPI_API ResolveIpNetEntry2( 584 PMIB_IPNET_ROW2 Row, 585 const SOCKADDR_INET *SourceAddress 586 ); 587 588 NETIOAPI_API SetIpForwardEntry2( 589 const MIB_IPFORWARD_ROW2 *Route 590 ); 591 592 NETIOAPI_API SetIpInterfaceEntry( 593 PMIB_IPINTERFACE_ROW Row 594 ); 595 596 NETIOAPI_API SetIpNetEntry2( 597 PMIB_IPNET_ROW2 Row 598 ); 599 600 NETIOAPI_API SetUnicastIpAddressEntry( 601 const MIB_UNICASTIPADDRESS_ROW *Row 602 ); 603 604 #ifdef __cplusplus 605 } 606 #endif 607 608 #endif /*(_WIN32_WINNT >= 0x0600)*/ 609 610 #endif /*_INC_NETIOAPI*/ 611