00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 #ifndef __IPHLPAPI_H__
00038 #define __IPHLPAPI_H__
00039
00040 #if _MSC_VER > 1000
00041 #pragma once
00042 #endif
00043
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047
00048
00049
00050
00051
00052
00053
00054
00055 #include <iprtrmib.h>
00056 #include <ipexport.h>
00057 #include <iptypes.h>
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 DWORD
00079 WINAPI
00080 GetNumberOfInterfaces(
00081 OUT PDWORD pdwNumIf
00082 );
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092 DWORD
00093 WINAPI
00094 GetIfEntry(
00095 IN OUT PMIB_IFROW pIfRow
00096 );
00097
00098
00099
00100
00101
00102
00103
00104 DWORD
00105 WINAPI
00106 GetIfTable(
00107 OUT PMIB_IFTABLE pIfTable,
00108 IN OUT PULONG pdwSize,
00109 IN BOOL bOrder
00110 );
00111
00112
00113
00114
00115
00116
00117
00118 DWORD
00119 WINAPI
00120 GetIpAddrTable(
00121 OUT PMIB_IPADDRTABLE pIpAddrTable,
00122 IN OUT PULONG pdwSize,
00123 IN BOOL bOrder
00124 );
00125
00126
00127
00128
00129
00130
00131
00132 DWORD
00133 WINAPI
00134 GetIpNetTable(
00135 OUT PMIB_IPNETTABLE pIpNetTable,
00136 IN OUT PULONG pdwSize,
00137 IN BOOL bOrder
00138 );
00139
00140
00141
00142
00143
00144
00145
00146 DWORD
00147 WINAPI
00148 GetIpForwardTable(
00149 OUT PMIB_IPFORWARDTABLE pIpForwardTable,
00150 IN OUT PULONG pdwSize,
00151 IN BOOL bOrder
00152 );
00153
00154
00155
00156
00157
00158
00159
00160 DWORD
00161 WINAPI
00162 GetTcpTable(
00163 OUT PMIB_TCPTABLE pTcpTable,
00164 IN OUT PDWORD pdwSize,
00165 IN BOOL bOrder
00166 );
00167
00168 DWORD
00169 WINAPI
00170 GetUdpTable(
00171 OUT PMIB_UDPTABLE pUdpTable,
00172 IN OUT PDWORD pdwSize,
00173 IN BOOL bOrder
00174 );
00175
00176
00177
00178
00179
00180
00181
00182
00183 DWORD
00184 WINAPI
00185 GetIpStatistics(
00186 OUT PMIB_IPSTATS pStats
00187 );
00188
00189 DWORD
00190 WINAPI
00191 GetIpStatisticsEx(
00192 OUT PMIB_IPSTATS pStats,
00193 IN DWORD dwFamily
00194 );
00195
00196 DWORD
00197 WINAPI
00198 GetIcmpStatistics(
00199 OUT PMIB_ICMP pStats
00200 );
00201
00202 DWORD
00203 WINAPI
00204 GetIcmpStatisticsEx(
00205 OUT PMIB_ICMP_EX pStats,
00206 IN DWORD dwFamily
00207 );
00208
00209 DWORD
00210 WINAPI
00211 GetTcpStatistics(
00212 OUT PMIB_TCPSTATS pStats
00213 );
00214
00215 DWORD
00216 WINAPI
00217 GetTcpStatisticsEx(
00218 OUT PMIB_TCPSTATS pStats,
00219 IN DWORD dwFamily
00220 );
00221
00222 DWORD
00223 WINAPI
00224 GetUdpStatistics(
00225 OUT PMIB_UDPSTATS pStats
00226 );
00227
00228 DWORD
00229 WINAPI
00230 GetUdpStatisticsEx(
00231 OUT PMIB_UDPSTATS pStats,
00232 IN DWORD dwFamily
00233 );
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244 DWORD
00245 WINAPI
00246 SetIfEntry(
00247 IN PMIB_IFROW pIfRow
00248 );
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260 DWORD
00261 WINAPI
00262 CreateIpForwardEntry(
00263 IN PMIB_IPFORWARDROW pRoute
00264 );
00265
00266 DWORD
00267 WINAPI
00268 SetIpForwardEntry(
00269 IN PMIB_IPFORWARDROW pRoute
00270 );
00271
00272 DWORD
00273 WINAPI
00274 DeleteIpForwardEntry(
00275 IN PMIB_IPFORWARDROW pRoute
00276 );
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289 DWORD
00290 WINAPI
00291 SetIpStatistics(
00292 IN PMIB_IPSTATS pIpStats
00293 );
00294
00295
00296
00297
00298
00299
00300
00301 DWORD
00302 WINAPI
00303 SetIpTTL(
00304 UINT nTTL
00305 );
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315 DWORD
00316 WINAPI
00317 CreateIpNetEntry(
00318 IN PMIB_IPNETROW pArpEntry
00319 );
00320
00321 DWORD
00322 WINAPI
00323 SetIpNetEntry(
00324 IN PMIB_IPNETROW pArpEntry
00325 );
00326
00327 DWORD
00328 WINAPI
00329 DeleteIpNetEntry(
00330 IN PMIB_IPNETROW pArpEntry
00331 );
00332
00333 DWORD
00334 WINAPI
00335 FlushIpNetTable(
00336 IN DWORD dwIfIndex
00337 );
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348 DWORD
00349 WINAPI
00350 CreateProxyArpEntry(
00351 IN DWORD dwAddress,
00352 IN DWORD dwMask,
00353 IN DWORD dwIfIndex
00354 );
00355
00356 DWORD
00357 WINAPI
00358 DeleteProxyArpEntry(
00359 IN DWORD dwAddress,
00360 IN DWORD dwMask,
00361 IN DWORD dwIfIndex
00362 );
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372 DWORD
00373 WINAPI
00374 SetTcpEntry(
00375 IN PMIB_TCPROW pTcpRow
00376 );
00377
00378
00379 DWORD
00380 WINAPI
00381 GetInterfaceInfo(
00382 IN PIP_INTERFACE_INFO pIfTable,
00383 OUT PULONG dwOutBufLen
00384 );
00385
00386 DWORD
00387 WINAPI
00388 GetUniDirectionalAdapterInfo(OUT PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo,
00389 OUT PULONG dwOutBufLen
00390 );
00391
00392 #ifndef NhpAllocateAndGetInterfaceInfoFromStack_DEFINED
00393 #define NhpAllocateAndGetInterfaceInfoFromStack_DEFINED
00394
00395 DWORD
00396 WINAPI
00397 NhpAllocateAndGetInterfaceInfoFromStack(
00398 OUT IP_INTERFACE_NAME_INFO **ppTable,
00399 OUT PDWORD pdwCount,
00400 IN BOOL bOrder,
00401 IN HANDLE hHeap,
00402 IN DWORD dwFlags
00403 );
00404
00405 #endif
00406
00407
00408
00409
00410
00411
00412
00413 DWORD
00414 WINAPI
00415 GetBestInterface(
00416 IN IPAddr dwDestAddr,
00417 OUT PDWORD pdwBestIfIndex
00418 );
00419
00420 #pragma warning(push)
00421 #pragma warning(disable:4115)
00422 DWORD
00423 WINAPI
00424 GetBestInterfaceEx(
00425 IN struct sockaddr *pDestAddr,
00426 OUT PDWORD pdwBestIfIndex
00427 );
00428 #pragma warning(pop)
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440 DWORD
00441 WINAPI
00442 GetBestRoute(
00443 IN DWORD dwDestAddr,
00444 IN DWORD dwSourceAddr, OPTIONAL
00445 OUT PMIB_IPFORWARDROW pBestRoute
00446 );
00447
00448 DWORD
00449 WINAPI
00450 NotifyAddrChange(
00451 OUT PHANDLE Handle,
00452 IN LPOVERLAPPED overlapped
00453 );
00454
00455
00456 DWORD
00457 WINAPI
00458 NotifyRouteChange(
00459 OUT PHANDLE Handle,
00460 IN LPOVERLAPPED overlapped
00461 );
00462
00463 BOOL
00464 WINAPI
00465 CancelIPChangeNotify(
00466 IN LPOVERLAPPED notifyOverlapped
00467 );
00468
00469 DWORD
00470 WINAPI
00471 GetAdapterIndex(
00472 IN LPWSTR AdapterName,
00473 OUT PULONG IfIndex
00474 );
00475
00476 DWORD
00477 WINAPI
00478 AddIPAddress(
00479 IPAddr Address,
00480 IPMask IpMask,
00481 DWORD IfIndex,
00482 PULONG NTEContext,
00483 PULONG NTEInstance
00484 );
00485
00486 DWORD
00487 WINAPI
00488 DeleteIPAddress(
00489 ULONG NTEContext
00490 );
00491
00492 DWORD
00493 WINAPI
00494 GetNetworkParams(
00495 PFIXED_INFO pFixedInfo, PULONG pOutBufLen
00496 );
00497
00498 DWORD
00499 WINAPI
00500 GetAdaptersInfo(
00501 PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen
00502 );
00503
00504 PIP_ADAPTER_ORDER_MAP
00505 WINAPI
00506 GetAdapterOrderMap(
00507 VOID
00508 );
00509
00510 #ifdef _WINSOCK2API_
00511
00512
00513
00514
00515
00516 DWORD
00517 WINAPI
00518 GetAdaptersAddresses(
00519 IN ULONG Family,
00520 IN DWORD Flags,
00521 IN PVOID Reserved,
00522 OUT PIP_ADAPTER_ADDRESSES pAdapterAddresses,
00523 IN OUT PULONG pOutBufLen
00524 );
00525
00526 #endif
00527
00528 DWORD
00529 WINAPI
00530 GetPerAdapterInfo(
00531 ULONG IfIndex, PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen
00532 );
00533
00534 DWORD
00535 WINAPI
00536 IpReleaseAddress(
00537 PIP_ADAPTER_INDEX_MAP AdapterInfo
00538 );
00539
00540
00541 DWORD
00542 WINAPI
00543 IpRenewAddress(
00544 PIP_ADAPTER_INDEX_MAP AdapterInfo
00545 );
00546
00547 DWORD
00548 WINAPI
00549 SendARP(
00550 IPAddr DestIP,
00551 IPAddr SrcIP,
00552 PULONG pMacAddr,
00553 PULONG PhyAddrLen
00554 );
00555
00556 BOOL
00557 WINAPI
00558 GetRTTAndHopCount(
00559 IPAddr DestIpAddress,
00560 PULONG HopCount,
00561 ULONG MaxHops,
00562 PULONG RTT
00563 );
00564
00565 DWORD
00566 WINAPI
00567 GetFriendlyIfIndex(
00568 DWORD IfIndex
00569 );
00570
00571 DWORD
00572 WINAPI
00573 EnableRouter(
00574 HANDLE* pHandle,
00575 OVERLAPPED* pOverlapped
00576 );
00577
00578 DWORD
00579 WINAPI
00580 UnenableRouter(
00581 OVERLAPPED* pOverlapped,
00582 LPDWORD lpdwEnableCount OPTIONAL
00583 );
00584 DWORD
00585 WINAPI
00586 DisableMediaSense(
00587 HANDLE *pHandle,
00588 OVERLAPPED *pOverLapped
00589 );
00590
00591 DWORD
00592 WINAPI
00593 RestoreMediaSense(
00594 OVERLAPPED* pOverlapped,
00595 LPDWORD lpdwEnableCount OPTIONAL
00596 );
00597
00598 DWORD
00599 WINAPI
00600 GetIpErrorString(
00601 IN IP_STATUS ErrorCode,
00602 OUT PWCHAR Buffer,
00603 IN OUT PDWORD Size
00604 );
00605
00606 #ifdef __cplusplus
00607 }
00608 #endif
00609
00610 #endif //__IPHLPAPI_H__