| iphlpapi.h (6.1.7601.17514-Windows_7.0) | | iphlpapi.h (6.3.9600.17415-Windows_8.1) |
| | |
| skipping to change at line 21 | | skipping to change at line 21 |
| related functionality | | related functionality |
| | |
| --*/ | | --*/ |
| | |
| #ifndef __IPHLPAPI_H__ | | #ifndef __IPHLPAPI_H__ |
| #define __IPHLPAPI_H__ | | #define __IPHLPAPI_H__ |
| | |
| #if _MSC_VER > 1000 | | #if _MSC_VER > 1000 |
| #pragma once | | #pragma once |
| #endif | | #endif |
|
| | #include <winapifamily.h> |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| extern "C" { | | extern "C" { |
| #endif | | #endif |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // IPRTRMIB.H has the definitions of the structures used to set and get // | | // IPRTRMIB.H has the definitions of the structures used to set and get // |
| // information // | | // information // |
| // // | | // // |
| | |
| skipping to change at line 58 | | skipping to change at line 62 |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Retrieves the number of interfaces in the system. These include LAN and // | | // Retrieves the number of interfaces in the system. These include LAN and // |
| // WAN interfaces // | | // WAN interfaces // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetNumberOfInterfaces( | | GetNumberOfInterfaces( |
|
| __out PDWORD pdwNumIf | | _Out_ PDWORD pdwNumIf |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Gets the MIB-II ifEntry // | | // Gets the MIB-II ifEntry // |
| // The dwIndex field of the MIB_IFROW should be set to the index of the // | | // The dwIndex field of the MIB_IFROW should be set to the index of the // |
| // interface being queried // | | // interface being queried // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetIfEntry( | | GetIfEntry( |
|
| __inout PMIB_IFROW pIfRow | | _Inout_ PMIB_IFROW pIfRow |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Gets the MIB-II IfTable // | | // Gets the MIB-II IfTable // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetIfTable( | | GetIfTable( |
|
| __out_bcount_opt(*pdwSize) PMIB_IFTABLE pIfTable, | | _Out_writes_bytes_opt_(*pdwSize) PMIB_IFTABLE pIfTable, |
| __inout PULONG pdwSize, | | _Inout_ PULONG pdwSize, |
| __in BOOL bOrder | | _In_ BOOL bOrder |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Gets the Interface to IP Address mapping // | | // Gets the Interface to IP Address mapping // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetIpAddrTable( | | GetIpAddrTable( |
|
| __out_bcount_opt(*pdwSize) PMIB_IPADDRTABLE pIpAddrTable, | | _Out_writes_bytes_opt_(*pdwSize) PMIB_IPADDRTABLE pIpAddrTable, |
| __inout PULONG pdwSize, | | _Inout_ PULONG pdwSize, |
| __in BOOL bOrder | | _In_ BOOL bOrder |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Gets the current IP Address to Physical Address (ARP) mapping // | | // Gets the current IP Address to Physical Address (ARP) mapping // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetIpNetTable( | | GetIpNetTable( |
|
| __out_bcount_opt(*SizePointer) PMIB_IPNETTABLE IpNetTable, | | _Out_writes_bytes_opt_(*SizePointer) PMIB_IPNETTABLE IpNetTable, |
| __inout PULONG SizePointer, | | _Inout_ PULONG SizePointer, |
| __in BOOL Order | | _In_ BOOL Order |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Gets the IP Routing Table (RFX XXXX) // | | // Gets the IP Routing Table (RFX XXXX) // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetIpForwardTable( | | GetIpForwardTable( |
|
| __out_bcount_opt(*pdwSize) PMIB_IPFORWARDTABLE pIpForwardTable, | | _Out_writes_bytes_opt_(*pdwSize) PMIB_IPFORWARDTABLE pIpForwardTable, |
| __inout PULONG pdwSize, | | _Inout_ PULONG pdwSize, |
| __in BOOL bOrder | | _In_ BOOL bOrder |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Gets TCP Connection/UDP Listener Table // | | // Gets TCP Connection/UDP Listener Table // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetTcpTable( | | GetTcpTable( |
|
| __out_bcount_opt(*SizePointer) PMIB_TCPTABLE TcpTable, | | _Out_writes_bytes_opt_(*SizePointer) PMIB_TCPTABLE TcpTable, |
| __inout PULONG SizePointer, | | _Inout_ PULONG SizePointer, |
| __in BOOL Order | | _In_ BOOL Order |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetExtendedTcpTable( | | GetExtendedTcpTable( |
|
| __out_bcount_opt(*pdwSize) PVOID pTcpTable, | | _Out_writes_bytes_opt_(*pdwSize) PVOID pTcpTable, |
| __inout PDWORD pdwSize, | | _Inout_ |
| __in BOOL bOrder, | | _When_(ulAf == AF_INET, _Deref_in_range_(>=, sizeof(MIB_TCPTABLE))) |
| __in ULONG ulAf, | | _When_( |
| __in TCP_TABLE_CLASS TableClass, | | (TableClass == TCP_TABLE_OWNER_PID_LISTENER || |
| __in ULONG Reserved | | TableClass == TCP_TABLE_OWNER_PID_CONNECTIONS || |
| | TableClass == TCP_TABLE_OWNER_PID_ALL) && ulAf == AF_INET6, |
| | _Deref_in_range_(>=, sizeof(MIB_TCP6TABLE_OWNER_PID))) |
| | _When_( |
| | (TableClass == TCP_TABLE_OWNER_MODULE_LISTENER || |
| | TableClass == TCP_TABLE_OWNER_MODULE_CONNECTIONS || |
| | TableClass == TCP_TABLE_OWNER_MODULE_ALL) && ulAf == AF_INET6, |
| | _Deref_in_range_(>=, sizeof(MIB_TCP6TABLE_OWNER_MODULE))) |
| | PDWORD pdwSize, |
| | _In_ BOOL bOrder, |
| | _In_ ULONG ulAf, |
| | _In_ TCP_TABLE_CLASS TableClass, |
| | _In_ ULONG Reserved |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetOwnerModuleFromTcpEntry( | | GetOwnerModuleFromTcpEntry( |
|
| __in PMIB_TCPROW_OWNER_MODULE pTcpEntry, | | _In_ PMIB_TCPROW_OWNER_MODULE pTcpEntry, |
| __in TCPIP_OWNER_MODULE_INFO_CLASS Class, | | _In_ TCPIP_OWNER_MODULE_INFO_CLASS Class, |
| __out_bcount(*pdwSize) PVOID pBuffer, | | _Out_writes_bytes_(*pdwSize) PVOID pBuffer, |
| __inout PDWORD pdwSize | | _Inout_ PDWORD pdwSize |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetUdpTable( | | GetUdpTable( |
|
| __out_bcount_opt(*SizePointer) PMIB_UDPTABLE UdpTable, | | _Out_writes_bytes_opt_(*SizePointer) PMIB_UDPTABLE UdpTable, |
| __inout PULONG SizePointer, | | _Inout_ PULONG SizePointer, |
| __in BOOL Order | | _In_ BOOL Order |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetExtendedUdpTable( | | GetExtendedUdpTable( |
|
| __out_bcount_opt(*pdwSize) PVOID pUdpTable, | | _Out_writes_bytes_opt_(*pdwSize) PVOID pUdpTable, |
| __inout PDWORD pdwSize, | | _Inout_ PDWORD pdwSize, |
| __in BOOL bOrder, | | _In_ BOOL bOrder, |
| __in ULONG ulAf, | | _In_ ULONG ulAf, |
| __in UDP_TABLE_CLASS TableClass, | | _In_ UDP_TABLE_CLASS TableClass, |
| __in ULONG Reserved | | _In_ ULONG Reserved |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetOwnerModuleFromUdpEntry( | | GetOwnerModuleFromUdpEntry( |
|
| __in PMIB_UDPROW_OWNER_MODULE pUdpEntry, | | _In_ PMIB_UDPROW_OWNER_MODULE pUdpEntry, |
| __in TCPIP_OWNER_MODULE_INFO_CLASS Class, | | _In_ TCPIP_OWNER_MODULE_INFO_CLASS Class, |
| __out_bcount(*pdwSize) PVOID pBuffer, | | _Out_writes_bytes_(*pdwSize) PVOID pBuffer, |
| __inout PDWORD pdwSize | | _Inout_ PDWORD pdwSize |
| ); | | ); |
| | |
| #if (NTDDI_VERSION >= NTDDI_VISTA) | | #if (NTDDI_VERSION >= NTDDI_VISTA) |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetTcpTable2( | | GetTcpTable2( |
|
| __out_bcount_opt(*SizePointer) PMIB_TCPTABLE2 TcpTable, | | _Out_writes_bytes_opt_(*SizePointer) PMIB_TCPTABLE2 TcpTable, |
| __inout PULONG SizePointer, | | _Inout_ PULONG SizePointer, |
| __in BOOL Order | | _In_ BOOL Order |
| ); | | ); |
| #endif // (NTDDI_VERSION >= NTDDI_VISTA) | | #endif // (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| #if (NTDDI_VERSION < NTDDI_VISTA) | | #if (NTDDI_VERSION < NTDDI_VISTA) |
| // | | // |
| // Deprecated APIs, Added for documentation. | | // Deprecated APIs, Added for documentation. |
| // | | // |
| | |
| DWORD | | DWORD |
| AllocateAndGetTcpExTableFromStack( | | AllocateAndGetTcpExTableFromStack( |
|
| __deref_out PVOID *ppTcpTable, | | _Outptr_ PVOID *ppTcpTable, |
| __in BOOL bOrder, | | _In_ BOOL bOrder, |
| __in HANDLE hHeap, | | _In_ HANDLE hHeap, |
| __in DWORD dwFlags, | | _In_ DWORD dwFlags, |
| __in DWORD dwFamily | | _In_ DWORD dwFamily |
| ); | | ); |
| | |
| DWORD | | DWORD |
| AllocateAndGetUdpExTableFromStack( | | AllocateAndGetUdpExTableFromStack( |
|
| __deref_out PVOID *ppUdpTable, | | _Outptr_ PVOID *ppUdpTable, |
| __in BOOL bOrder, | | _In_ BOOL bOrder, |
| __in HANDLE hHeap, | | _In_ HANDLE hHeap, |
| __in DWORD dwFlags, | | _In_ DWORD dwFlags, |
| __in DWORD dwFamily | | _In_ DWORD dwFamily |
| ); | | ); |
| | |
| #endif // (NTDDI_VERSION < NTDDI_VISTA) | | #endif // (NTDDI_VERSION < NTDDI_VISTA) |
| | |
| #ifdef _WS2IPDEF_ | | #ifdef _WS2IPDEF_ |
| // | | // |
| // The following definitions require Winsock2. | | // The following definitions require Winsock2. |
| // | | // |
| | |
| #if (NTDDI_VERSION >= NTDDI_VISTA) | | #if (NTDDI_VERSION >= NTDDI_VISTA) |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetTcp6Table( | | GetTcp6Table( |
|
| __out_bcount(*SizePointer) PMIB_TCP6TABLE TcpTable, | | _Out_writes_bytes_(*SizePointer) PMIB_TCP6TABLE TcpTable, |
| __inout PULONG SizePointer, | | _Inout_ PULONG SizePointer, |
| __in BOOL Order | | _In_ BOOL Order |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetTcp6Table2( | | GetTcp6Table2( |
|
| __out_bcount(*SizePointer) PMIB_TCP6TABLE2 TcpTable, | | _Out_writes_bytes_(*SizePointer) PMIB_TCP6TABLE2 TcpTable, |
| __inout PULONG SizePointer, | | _Inout_ PULONG SizePointer, |
| __in BOOL Order | | _In_ BOOL Order |
| ); | | ); |
| | |
| #endif // (NTDDI_VERSION >= NTDDI_VISTA) | | #endif // (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| #ifdef WINAPI | | #ifdef WINAPI |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetPerTcpConnectionEStats( | | GetPerTcpConnectionEStats( |
|
| __in PMIB_TCPROW Row, | | _In_ PMIB_TCPROW Row, |
| __in TCP_ESTATS_TYPE EstatsType, | | _In_ TCP_ESTATS_TYPE EstatsType, |
| __out_bcount_opt(RwSize) PUCHAR Rw, | | _Out_writes_bytes_opt_(RwSize) PUCHAR Rw, |
| __in ULONG RwVersion, | | _In_ ULONG RwVersion, |
| __in ULONG RwSize, | | _In_ ULONG RwSize, |
| __out_bcount_opt(RosSize) PUCHAR Ros, | | _Out_writes_bytes_opt_(RosSize) PUCHAR Ros, |
| __in ULONG RosVersion, | | _In_ ULONG RosVersion, |
| __in ULONG RosSize, | | _In_ ULONG RosSize, |
| __out_bcount_opt(RodSize) PUCHAR Rod, | | _Out_writes_bytes_opt_(RodSize) PUCHAR Rod, |
| __in ULONG RodVersion, | | _In_ ULONG RodVersion, |
| __in ULONG RodSize | | _In_ ULONG RodSize |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| SetPerTcpConnectionEStats( | | SetPerTcpConnectionEStats( |
|
| __in PMIB_TCPROW Row, | | _In_ PMIB_TCPROW Row, |
| __in TCP_ESTATS_TYPE EstatsType, | | _In_ TCP_ESTATS_TYPE EstatsType, |
| __in_bcount(RwSize) PUCHAR Rw, | | _In_reads_bytes_(RwSize) PUCHAR Rw, |
| __in ULONG RwVersion, | | _In_ ULONG RwVersion, |
| __in ULONG RwSize, | | _In_ ULONG RwSize, |
| __in ULONG Offset | | _In_ ULONG Offset |
| ); | | ); |
| | |
| #ifdef _WS2IPDEF_ | | #ifdef _WS2IPDEF_ |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetPerTcp6ConnectionEStats( | | GetPerTcp6ConnectionEStats( |
|
| __in PMIB_TCP6ROW Row, | | _In_ PMIB_TCP6ROW Row, |
| __in TCP_ESTATS_TYPE EstatsType, | | _In_ TCP_ESTATS_TYPE EstatsType, |
| __out_bcount_opt(RwSize) PUCHAR Rw, | | _Out_writes_bytes_opt_(RwSize) PUCHAR Rw, |
| __in ULONG RwVersion, | | _In_ ULONG RwVersion, |
| __in ULONG RwSize, | | _In_ ULONG RwSize, |
| __out_bcount_opt(RosSize) PUCHAR Ros, | | _Out_writes_bytes_opt_(RosSize) PUCHAR Ros, |
| __in ULONG RosVersion, | | _In_ ULONG RosVersion, |
| __in ULONG RosSize, | | _In_ ULONG RosSize, |
| __out_bcount_opt(RodSize) PUCHAR Rod, | | _Out_writes_bytes_opt_(RodSize) PUCHAR Rod, |
| __in ULONG RodVersion, | | _In_ ULONG RodVersion, |
| __in ULONG RodSize | | _In_ ULONG RodSize |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| SetPerTcp6ConnectionEStats( | | SetPerTcp6ConnectionEStats( |
|
| __in PMIB_TCP6ROW Row, | | _In_ PMIB_TCP6ROW Row, |
| __in TCP_ESTATS_TYPE EstatsType, | | _In_ TCP_ESTATS_TYPE EstatsType, |
| __in_bcount(RwSize) PUCHAR Rw, | | _In_reads_bytes_(RwSize) PUCHAR Rw, |
| __in ULONG RwVersion, | | _In_ ULONG RwVersion, |
| __in ULONG RwSize, | | _In_ ULONG RwSize, |
| __in ULONG Offset | | _In_ ULONG Offset |
| ); | | ); |
| | |
| #endif // _WS2IPDEF_ | | #endif // _WS2IPDEF_ |
| | |
| #endif // WINAPI | | #endif // WINAPI |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetOwnerModuleFromTcp6Entry( | | GetOwnerModuleFromTcp6Entry( |
|
| __in PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, | | _In_ PMIB_TCP6ROW_OWNER_MODULE pTcpEntry, |
| __in TCPIP_OWNER_MODULE_INFO_CLASS Class, | | _In_ TCPIP_OWNER_MODULE_INFO_CLASS Class, |
| __out_bcount(*pdwSize) PVOID pBuffer, | | _Out_writes_bytes_(*pdwSize) PVOID pBuffer, |
| __inout PDWORD pdwSize | | _Inout_ PDWORD pdwSize |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetUdp6Table( | | GetUdp6Table( |
|
| __out_bcount(*SizePointer) PMIB_UDP6TABLE Udp6Table, | | _Out_writes_bytes_opt_(*SizePointer) PMIB_UDP6TABLE Udp6Table, |
| __inout PULONG SizePointer, | | _Inout_ PULONG SizePointer, |
| __in BOOL Order | | _In_ BOOL Order |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetOwnerModuleFromUdp6Entry( | | GetOwnerModuleFromUdp6Entry( |
|
| __in PMIB_UDP6ROW_OWNER_MODULE pUdpEntry, | | _In_ PMIB_UDP6ROW_OWNER_MODULE pUdpEntry, |
| __in TCPIP_OWNER_MODULE_INFO_CLASS Class, | | _In_ TCPIP_OWNER_MODULE_INFO_CLASS Class, |
| __out_bcount(*pdwSize) PVOID pBuffer, | | _Out_writes_bytes_(*pdwSize) PVOID pBuffer, |
| __inout PDWORD pdwSize | | _Inout_ PDWORD pdwSize |
| ); | | ); |
| | |
| #endif // _WS2IPDEF_ | | #endif // _WS2IPDEF_ |
| | |
| DWORD | | DWORD |
| GetOwnerModuleFromPidAndInfo( | | GetOwnerModuleFromPidAndInfo( |
|
| __in ULONG ulPid, | | _In_ ULONG ulPid, |
| __in ULONGLONG *pInfo, | | _In_ ULONGLONG *pInfo, |
| __in TCPIP_OWNER_MODULE_INFO_CLASS Class, | | _In_ TCPIP_OWNER_MODULE_INFO_CLASS Class, |
| __out_bcount(*pdwSize) PVOID pBuffer, | | _Out_writes_bytes_(*pdwSize) PVOID pBuffer, |
| __inout PDWORD pdwSize | | _Inout_ PDWORD pdwSize |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Gets IP/ICMP/TCP/UDP Statistics // | | // Gets IP/ICMP/TCP/UDP Statistics // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| #if (NTDDI_VERSION >= NTDDI_WIN2K) | | #if (NTDDI_VERSION >= NTDDI_WIN2K) |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetIpStatistics( | | GetIpStatistics( |
|
| __out PMIB_IPSTATS Statistics | | _Out_ PMIB_IPSTATS Statistics |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetIcmpStatistics( | | GetIcmpStatistics( |
|
| __out PMIB_ICMP Statistics | | _Out_ PMIB_ICMP Statistics |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetTcpStatistics( | | GetTcpStatistics( |
|
| __out PMIB_TCPSTATS Statistics | | _Out_ PMIB_TCPSTATS Statistics |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetUdpStatistics( | | GetUdpStatistics( |
|
| __out PMIB_UDPSTATS Stats | | _Out_ PMIB_UDPSTATS Stats |
| ); | | ); |
| #endif | | #endif |
| | |
|
| #if (NTDDI_VERSION >= NTDDI_XP) | | #if (NTDDI_VERSION >= NTDDI_WINXP) |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetIpStatisticsEx( | | GetIpStatisticsEx( |
|
| __out PMIB_IPSTATS Statistics, | | _Out_ PMIB_IPSTATS Statistics, |
| __in ULONG Family | | _In_ ULONG Family |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| SetIpStatisticsEx( | | SetIpStatisticsEx( |
|
| __in PMIB_IPSTATS Statistics, | | _In_ PMIB_IPSTATS Statistics, |
| __in ULONG Family | | _In_ ULONG Family |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetIcmpStatisticsEx( | | GetIcmpStatisticsEx( |
|
| __out PMIB_ICMP_EX Statistics, | | _Out_ PMIB_ICMP_EX Statistics, |
| __in ULONG Family | | _In_ ULONG Family |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetTcpStatisticsEx( | | GetTcpStatisticsEx( |
|
| __out PMIB_TCPSTATS Statistics, | | _Out_ PMIB_TCPSTATS Statistics, |
| __in ULONG Family | | _In_ ULONG Family |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetUdpStatisticsEx( | | GetUdpStatisticsEx( |
|
| __out PMIB_UDPSTATS Statistics, | | _Out_ PMIB_UDPSTATS Statistics, |
| __in ULONG Family | | _In_ ULONG Family |
| ); | | ); |
| #endif | | #endif |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Used to set the ifAdminStatus on an interface. The only fields of the // | | // Used to set the ifAdminStatus on an interface. The only fields of the // |
| // MIB_IFROW that are relevant are the dwIndex (index of the interface // | | // MIB_IFROW that are relevant are the dwIndex (index of the interface // |
| // whose status needs to be set) and the dwAdminStatus which can be either // | | // whose status needs to be set) and the dwAdminStatus which can be either // |
| // MIB_IF_ADMIN_STATUS_UP or MIB_IF_ADMIN_STATUS_DOWN // | | // MIB_IF_ADMIN_STATUS_UP or MIB_IF_ADMIN_STATUS_DOWN // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| SetIfEntry( | | SetIfEntry( |
|
| __in PMIB_IFROW pIfRow | | _In_ PMIB_IFROW pIfRow |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Used to create, modify or delete a route. In all cases the // | | // Used to create, modify or delete a route. In all cases the // |
| // dwForwardIfIndex, dwForwardDest, dwForwardMask, dwForwardNextHop and // | | // dwForwardIfIndex, dwForwardDest, dwForwardMask, dwForwardNextHop and // |
| // dwForwardPolicy MUST BE SPECIFIED. Currently dwForwardPolicy is unused // | | // dwForwardPolicy MUST BE SPECIFIED. Currently dwForwardPolicy is unused // |
| // and MUST BE 0. // | | // and MUST BE 0. // |
| // For a set, the complete MIB_IPFORWARDROW structure must be specified // | | // For a set, the complete MIB_IPFORWARDROW structure must be specified // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| CreateIpForwardEntry( | | CreateIpForwardEntry( |
|
| __in PMIB_IPFORWARDROW pRoute | | _In_ PMIB_IPFORWARDROW pRoute |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| SetIpForwardEntry( | | SetIpForwardEntry( |
|
| __in PMIB_IPFORWARDROW pRoute | | _In_ PMIB_IPFORWARDROW pRoute |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| DeleteIpForwardEntry( | | DeleteIpForwardEntry( |
|
| __in PMIB_IPFORWARDROW pRoute | | _In_ PMIB_IPFORWARDROW pRoute |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Used to set the ipForwarding to ON or OFF (currently only ON->OFF is // | | // Used to set the ipForwarding to ON or OFF (currently only ON->OFF is // |
| // allowed) and to set the defaultTTL. If only one of the fields needs to // | | // allowed) and to set the defaultTTL. If only one of the fields needs to // |
| // be modified and the other needs to be the same as before the other field // | | // be modified and the other needs to be the same as before the other field // |
| // needs to be set to MIB_USE_CURRENT_TTL or MIB_USE_CURRENT_FORWARDING as // | | // needs to be set to MIB_USE_CURRENT_TTL or MIB_USE_CURRENT_FORWARDING as // |
| // the case may be // | | // the case may be // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| #if (NTDDI_VERSION >= NTDDI_WIN2K) | | #if (NTDDI_VERSION >= NTDDI_WIN2K) |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| SetIpStatistics( | | SetIpStatistics( |
|
| __in PMIB_IPSTATS pIpStats | | _In_ PMIB_IPSTATS pIpStats |
| ); | | ); |
| #endif | | #endif |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Used to set the defaultTTL. // | | // Used to set the defaultTTL. // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| SetIpTTL( | | SetIpTTL( |
|
| __in UINT nTTL | | _In_ UINT nTTL |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Used to create, modify or delete an ARP entry. In all cases the dwIndex // | | // Used to create, modify or delete an ARP entry. In all cases the dwIndex // |
| // dwAddr field MUST BE SPECIFIED. // | | // dwAddr field MUST BE SPECIFIED. // |
| // For a set, the complete MIB_IPNETROW structure must be specified // | | // For a set, the complete MIB_IPNETROW structure must be specified // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| CreateIpNetEntry( | | CreateIpNetEntry( |
|
| __in PMIB_IPNETROW pArpEntry | | _In_ PMIB_IPNETROW pArpEntry |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| SetIpNetEntry( | | SetIpNetEntry( |
|
| __in PMIB_IPNETROW pArpEntry | | _In_ PMIB_IPNETROW pArpEntry |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| DeleteIpNetEntry( | | DeleteIpNetEntry( |
|
| __in PMIB_IPNETROW pArpEntry | | _In_ PMIB_IPNETROW pArpEntry |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| FlushIpNetTable( | | FlushIpNetTable( |
|
| __in DWORD dwIfIndex | | _In_ DWORD dwIfIndex |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Used to create or delete a Proxy ARP entry. The dwIndex is the index of // | | // Used to create or delete a Proxy ARP entry. The dwIndex is the index of // |
| // the interface on which to PARP for the dwAddress. If the interface is // | | // the interface on which to PARP for the dwAddress. If the interface is // |
| // of a type that doesnt support ARP, e.g. PPP, then the call will fail // | | // of a type that doesnt support ARP, e.g. PPP, then the call will fail // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| CreateProxyArpEntry( | | CreateProxyArpEntry( |
|
| __in DWORD dwAddress, | | _In_ DWORD dwAddress, |
| __in DWORD dwMask, | | _In_ DWORD dwMask, |
| __in DWORD dwIfIndex | | _In_ DWORD dwIfIndex |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| DeleteProxyArpEntry( | | DeleteProxyArpEntry( |
|
| __in DWORD dwAddress, | | _In_ DWORD dwAddress, |
| __in DWORD dwMask, | | _In_ DWORD dwMask, |
| __in DWORD dwIfIndex | | _In_ DWORD dwIfIndex |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Used to set the state of a TCP Connection. The only state that it can be // | | // Used to set the state of a TCP Connection. The only state that it can be // |
| // set to is MIB_TCP_STATE_DELETE_TCB. The complete MIB_TCPROW structure // | | // set to is MIB_TCP_STATE_DELETE_TCB. The complete MIB_TCPROW structure // |
| // MUST BE SPECIFIED // | | // MUST BE SPECIFIED // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| SetTcpEntry( | | SetTcpEntry( |
|
| __in PMIB_TCPROW pTcpRow | | _In_ PMIB_TCPROW pTcpRow |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetInterfaceInfo( | | GetInterfaceInfo( |
|
| __out_bcount_opt(*dwOutBufLen) PIP_INTERFACE_INFO pIfTable, | | _Out_writes_bytes_opt_(*dwOutBufLen) PIP_INTERFACE_INFO pIfTable, |
| __inout PULONG dwOutBufLen | | _Inout_ PULONG dwOutBufLen |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetUniDirectionalAdapterInfo( | | GetUniDirectionalAdapterInfo( |
|
| __out_bcount_opt(*dwOutBufLen) PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo, | | _Out_writes_bytes_opt_(*dwOutBufLen) PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPI |
| __inout PULONG dwOutBufLe | | fInfo, |
| n | | _Inout_ PULONG dwOutBufLe |
| | n |
| ); | | ); |
| | |
| #if (NTDDI_VERSION >= NTDDI_WIN2KSP1) | | #if (NTDDI_VERSION >= NTDDI_WIN2KSP1) |
| #ifndef NHPALLOCATEANDGETINTERFACEINFOFROMSTACK_DEFINED | | #ifndef NHPALLOCATEANDGETINTERFACEINFOFROMSTACK_DEFINED |
| #define NHPALLOCATEANDGETINTERFACEINFOFROMSTACK_DEFINED | | #define NHPALLOCATEANDGETINTERFACEINFOFROMSTACK_DEFINED |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| NhpAllocateAndGetInterfaceInfoFromStack( | | NhpAllocateAndGetInterfaceInfoFromStack( |
|
| __deref_out IP_INTERFACE_NAME_INFO **ppTable, | | _Outptr_ IP_INTERFACE_NAME_INFO **ppTable, |
| __out PDWORD pdwCount, | | _Out_ PDWORD pdwCount, |
| __in BOOL bOrder, | | _In_ BOOL bOrder, |
| __in HANDLE hHeap, | | _In_ HANDLE hHeap, |
| __in DWORD dwFlags | | _In_ DWORD dwFlags |
| ); | | ); |
| | |
| #endif | | #endif |
| #endif // (NTDDI_VERSION >= NTDDI_WIN2KSP1) | | #endif // (NTDDI_VERSION >= NTDDI_WIN2KSP1) |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Gets the "best" outgoing interface for the specified destination address // | | // Gets the "best" outgoing interface for the specified destination address // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetBestInterface( | | GetBestInterface( |
|
| __in IPAddr dwDestAddr, | | _In_ IPAddr dwDestAddr, |
| __out PDWORD pdwBestIfIndex | | _Out_ PDWORD pdwBestIfIndex |
| ); | | ); |
| | |
| #pragma warning(push) | | #pragma warning(push) |
| #pragma warning(disable:4115) | | #pragma warning(disable:4115) |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetBestInterfaceEx( | | GetBestInterfaceEx( |
|
| __in struct sockaddr *pDestAddr, | | _In_ struct sockaddr *pDestAddr, |
| __out PDWORD pdwBestIfIndex | | _Out_ PDWORD pdwBestIfIndex |
| ); | | ); |
| #pragma warning(pop) | | #pragma warning(pop) |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Gets the best (longest matching prefix) route for the given destination // | | // Gets the best (longest matching prefix) route for the given destination // |
| // If the source address is also specified (i.e. is not 0x00000000), and // | | // If the source address is also specified (i.e. is not 0x00000000), and // |
| // there are multiple "best" routes to the given destination, the returned // | | // there are multiple "best" routes to the given destination, the returned // |
| // route will be one that goes out over the interface which has an address // | | // route will be one that goes out over the interface which has an address // |
| // that matches the source address // | | // that matches the source address // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetBestRoute( | | GetBestRoute( |
|
| __in DWORD dwDestAddr, | | _In_ DWORD dwDestAddr, |
| __in_opt DWORD dwSourceAddr, | | _In_opt_ DWORD dwSourceAddr, |
| __out PMIB_IPFORWARDROW pBestRoute | | _Out_ PMIB_IPFORWARDROW pBestRoute |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| NotifyAddrChange( | | NotifyAddrChange( |
|
| __out PHANDLE Handle, | | _Out_ PHANDLE Handle, |
| __in LPOVERLAPPED overlapped | | _In_ LPOVERLAPPED overlapped |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| NotifyRouteChange( | | NotifyRouteChange( |
|
| __out PHANDLE Handle, | | _Out_ PHANDLE Handle, |
| __in LPOVERLAPPED overlapped | | _In_ LPOVERLAPPED overlapped |
| ); | | ); |
| | |
| BOOL | | BOOL |
| WINAPI | | WINAPI |
| CancelIPChangeNotify( | | CancelIPChangeNotify( |
|
| __in LPOVERLAPPED notifyOverlapped | | _In_ LPOVERLAPPED notifyOverlapped |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetAdapterIndex( | | GetAdapterIndex( |
|
| __in LPWSTR AdapterName, | | _In_ LPWSTR AdapterName, |
| __inout PULONG IfIndex | | _Inout_ PULONG IfIndex |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| AddIPAddress( | | AddIPAddress( |
|
| __in IPAddr Address, | | _In_ IPAddr Address, |
| __in IPMask IpMask, | | _In_ IPMask IpMask, |
| __in DWORD IfIndex, | | _In_ DWORD IfIndex, |
| __out PULONG NTEContext, | | _Out_ PULONG NTEContext, |
| __out PULONG NTEInstance | | _Out_ PULONG NTEInstance |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| DeleteIPAddress( | | DeleteIPAddress( |
|
| __in ULONG NTEContext | | _In_ ULONG NTEContext |
| ); | | ); |
| | |
| #if (NTDDI_VERSION >= NTDDI_WIN2KSP1) | | #if (NTDDI_VERSION >= NTDDI_WIN2KSP1) |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetNetworkParams( | | GetNetworkParams( |
|
| __out_bcount_opt(*pOutBufLen) PFIXED_INFO pFixedInfo, | | _Out_writes_bytes_opt_(*pOutBufLen) PFIXED_INFO pFixedInfo, |
| __inout PULONG pOutBufLen | | _Inout_ PULONG pOutBufLen |
| ); | | ); |
| #endif | | #endif |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetAdaptersInfo( | | GetAdaptersInfo( |
|
| __out_bcount_opt(*SizePointer) PIP_ADAPTER_INFO AdapterInfo, | | _Out_writes_bytes_opt_(*SizePointer) PIP_ADAPTER_INFO AdapterInfo, |
| __inout PULONG SizePointer | | _Inout_ PULONG SizePointer |
| ); | | ); |
| | |
| PIP_ADAPTER_ORDER_MAP | | PIP_ADAPTER_ORDER_MAP |
| WINAPI | | WINAPI |
| GetAdapterOrderMap( | | GetAdapterOrderMap( |
| VOID | | VOID |
| ); | | ); |
| | |
| #ifdef _WINSOCK2API_ | | #ifdef _WINSOCK2API_ |
| | |
| // | | // |
| // The following functions require Winsock2. | | // The following functions require Winsock2. |
| // | | // |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetAdaptersAddresses( | | GetAdaptersAddresses( |
|
| __in ULONG Family, | | _In_ ULONG Family, |
| __in ULONG Flags, | | _In_ ULONG Flags, |
| __reserved PVOID Reserved, | | _Reserved_ PVOID Reserved, |
| __out_bcount_opt(*SizePointer) PIP_ADAPTER_ADDRESSES AdapterAddresses, | | _Out_writes_bytes_opt_(*SizePointer) PIP_ADAPTER_ADDRESSES AdapterAddresses, |
| __inout PULONG SizePointer | | _Inout_ PULONG SizePointer |
| ); | | ); |
| | |
| #endif | | #endif |
| | |
| #if (NTDDI_VERSION >= NTDDI_WIN2KSP1) | | #if (NTDDI_VERSION >= NTDDI_WIN2KSP1) |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetPerAdapterInfo( | | GetPerAdapterInfo( |
|
| __in ULONG IfIndex, | | _In_ ULONG IfIndex, |
| __out_bcount_opt(*pOutBufLen) PIP_PER_ADAPTER_INFO pPerAdapterInfo, | | _Out_writes_bytes_opt_(*pOutBufLen) PIP_PER_ADAPTER_INFO pPerAdapterInfo, |
| __inout PULONG pOutBufLen | | _Inout_ PULONG pOutBufLen |
| ); | | ); |
| #endif | | #endif |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| IpReleaseAddress( | | IpReleaseAddress( |
|
| __in PIP_ADAPTER_INDEX_MAP AdapterInfo | | _In_ PIP_ADAPTER_INDEX_MAP AdapterInfo |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| IpRenewAddress( | | IpRenewAddress( |
|
| __in PIP_ADAPTER_INDEX_MAP AdapterInfo | | _In_ PIP_ADAPTER_INDEX_MAP AdapterInfo |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| SendARP( | | SendARP( |
|
| __in IPAddr DestIP, | | _In_ IPAddr DestIP, |
| __in IPAddr SrcIP, | | _In_ IPAddr SrcIP, |
| __out_bcount(*PhyAddrLen) PVOID pMacAddr, | | _Out_writes_bytes_(*PhyAddrLen) PVOID pMacAddr, |
| __inout PULONG PhyAddrLen | | _Inout_ PULONG PhyAddrLen |
| ); | | ); |
| | |
| BOOL | | BOOL |
| WINAPI | | WINAPI |
| GetRTTAndHopCount( | | GetRTTAndHopCount( |
|
| __in IPAddr DestIpAddress, | | _In_ IPAddr DestIpAddress, |
| __out PULONG HopCount, | | _Out_ PULONG HopCount, |
| __in ULONG MaxHops, | | _In_ ULONG MaxHops, |
| __out PULONG RTT | | _Out_ PULONG RTT |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetFriendlyIfIndex( | | GetFriendlyIfIndex( |
|
| __in DWORD IfIndex | | _In_ DWORD IfIndex |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| EnableRouter( | | EnableRouter( |
|
| __out HANDLE* pHandle, | | _Out_ HANDLE* pHandle, |
| __out OVERLAPPED* pOverlapped | | _Out_ OVERLAPPED* pOverlapped |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| UnenableRouter( | | UnenableRouter( |
|
| __in OVERLAPPED* pOverlapped, | | _In_ OVERLAPPED* pOverlapped, |
| __out_opt LPDWORD lpdwEnableCount | | _Out_opt_ LPDWORD lpdwEnableCount |
| ); | | ); |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| DisableMediaSense( | | DisableMediaSense( |
|
| __out HANDLE *pHandle, | | _Out_ HANDLE *pHandle, |
| __in OVERLAPPED *pOverLapped | | _In_ OVERLAPPED *pOverLapped |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| RestoreMediaSense( | | RestoreMediaSense( |
|
| __in OVERLAPPED* pOverlapped, | | _In_ OVERLAPPED* pOverlapped, |
| __out_opt LPDWORD lpdwEnableCount | | _Out_opt_ LPDWORD lpdwEnableCount |
| ); | | ); |
| | |
| #if (NTDDI_VERSION >= NTDDI_VISTA) | | #if (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetIpErrorString( | | GetIpErrorString( |
|
| __in IP_STATUS ErrorCode, | | _In_ IP_STATUS ErrorCode, |
| __out_ecount_opt(*Size + 1) PWSTR Buffer, | | _Out_writes_opt_(*Size + 1) PWSTR Buffer, |
| __inout PDWORD Size | | _Inout_ PDWORD Size |
| ); | | ); |
| | |
| #if (NTDDI_VERSION >= NTDDI_VISTA) | | #if (NTDDI_VERSION >= NTDDI_VISTA) |
| #ifdef _WS2DEF_ | | #ifdef _WS2DEF_ |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| ResolveNeighbor( | | ResolveNeighbor( |
|
| __in SOCKADDR *NetworkAddress, | | _In_ SOCKADDR *NetworkAddress, |
| __out_bcount(*PhysicalAddressLength) PVOID PhysicalAddress, | | _Out_writes_bytes_(*PhysicalAddressLength) PVOID PhysicalAddress, |
| __inout PULONG PhysicalAddressLength | | _Inout_ PULONG PhysicalAddressLength |
| ); | | ); |
| #endif | | #endif |
| #endif | | #endif |
| // | | // |
| // Port reservation API routines. | | // Port reservation API routines. |
| // | | // |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| CreatePersistentTcpPortReservation( | | CreatePersistentTcpPortReservation( |
|
| __in USHORT StartPort, | | _In_ USHORT StartPort, |
| __in USHORT NumberOfPorts, | | _In_ USHORT NumberOfPorts, |
| __out PULONG64 Token | | _Out_ PULONG64 Token |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| CreatePersistentUdpPortReservation( | | CreatePersistentUdpPortReservation( |
|
| __in USHORT StartPort, | | _In_ USHORT StartPort, |
| __in USHORT NumberOfPorts, | | _In_ USHORT NumberOfPorts, |
| __out PULONG64 Token | | _Out_ PULONG64 Token |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| DeletePersistentTcpPortReservation( | | DeletePersistentTcpPortReservation( |
|
| __in USHORT StartPort, | | _In_ USHORT StartPort, |
| __in USHORT NumberOfPorts | | _In_ USHORT NumberOfPorts |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| DeletePersistentUdpPortReservation( | | DeletePersistentUdpPortReservation( |
|
| __in USHORT StartPort, | | _In_ USHORT StartPort, |
| __in USHORT NumberOfPorts | | _In_ USHORT NumberOfPorts |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| LookupPersistentTcpPortReservation( | | LookupPersistentTcpPortReservation( |
|
| __in USHORT StartPort, | | _In_ USHORT StartPort, |
| __in USHORT NumberOfPorts, | | _In_ USHORT NumberOfPorts, |
| __out PULONG64 Token | | _Out_ PULONG64 Token |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| LookupPersistentUdpPortReservation( | | LookupPersistentUdpPortReservation( |
|
| __in USHORT StartPort, | | _In_ USHORT StartPort, |
| __in USHORT NumberOfPorts, | | _In_ USHORT NumberOfPorts, |
| __out PULONG64 Token | | _Out_ PULONG64 Token |
| ); | | ); |
| | |
| // | | // |
| // Network String parsing API | | // Network String parsing API |
| // | | // |
| | |
| #define NET_STRING_IPV4_ADDRESS 0x00000001 | | #define NET_STRING_IPV4_ADDRESS 0x00000001 |
| // The string identifies an IPv4 Host/router using literal address. | | // The string identifies an IPv4 Host/router using literal address. |
| // (port or prefix not allowed) | | // (port or prefix not allowed) |
| #define NET_STRING_IPV4_SERVICE 0x00000002 | | #define NET_STRING_IPV4_SERVICE 0x00000002 |
| | |
| skipping to change at line 960 | | skipping to change at line 976 |
| SOCKADDR_IN Ipv4Address; | | SOCKADDR_IN Ipv4Address; |
| SOCKADDR_IN6 Ipv6Address; | | SOCKADDR_IN6 Ipv6Address; |
| SOCKADDR IpAddress; | | SOCKADDR IpAddress; |
| }; | | }; |
| | |
| } NET_ADDRESS_INFO, *PNET_ADDRESS_INFO; | | } NET_ADDRESS_INFO, *PNET_ADDRESS_INFO; |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| ParseNetworkString( | | ParseNetworkString( |
|
| __in CONST WCHAR* NetworkString, | | _In_z_ CONST WCHAR* NetworkString, |
| __in DWORD Types, | | _In_ DWORD Types, |
| __out_opt PNET_ADDRESS_INFO AddressInfo, | | _Out_opt_ PNET_ADDRESS_INFO AddressInfo, |
| __out_opt USHORT* PortNumber, | | _Out_opt_ USHORT* PortNumber, |
| __out_opt BYTE* PrefixLength | | _Out_opt_ BYTE* PrefixLength |
| ); | | ); |
| | |
| #endif | | #endif |
| | |
| #endif // (NTDDI_VERSION >= NTDDI_VISTA) | | #endif // (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| #if (NTDDI_VERSION >= NTDDI_VISTA) | | #if (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| #include <netioapi.h> | | #include <netioapi.h> |
| | |
| #endif // (NTDDI_VERSION >= NTDDI_VISTA) | | #endif // (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| } | | } |
| #endif | | #endif |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| #endif //__IPHLPAPI_H__ | | #endif //__IPHLPAPI_H__ |
| | |
| End of changes. 84 change blocks. |
| 229 lines changed or deleted | | 249 lines changed or added |
|
| netioapi.h (6.1.7601.17514-Windows_7.0) | | netioapi.h (6.3.9600.17415-Windows_8.1) |
|
| | // |
| | // Copyright (C) Microsoft. All rights reserved. |
| | // |
| /*++ | | /*++ |
| | |
| Module Name: | | Module Name: |
| | |
| netioapi.h | | netioapi.h |
| | |
| Abstract: | | Abstract: |
| | |
| This module contains definitions for version agnostic IP helper APIs. | | This module contains definitions for version agnostic IP helper APIs. |
| | |
| | |
| skipping to change at line 53 | | skipping to change at line 56 |
| append a version number to the constructs. | | append a version number to the constructs. |
| | |
| 4. The functions in this file are grouped by the object they operate upon. | | 4. The functions in this file are grouped by the object they operate upon. |
| Within the group, they are sorted alphabetically. | | Within the group, they are sorted alphabetically. |
| | |
| --*/ | | --*/ |
| | |
| #ifndef _NETIOAPI_H_ | | #ifndef _NETIOAPI_H_ |
| #define _NETIOAPI_H_ | | #define _NETIOAPI_H_ |
| #pragma once | | #pragma once |
|
| | #include <winapifamily.h> |
| | |
| | #pragma region Desktop Family |
| | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| extern "C" { | | extern "C" { |
| #endif | | #endif |
| | |
| // | | // |
| // General types. | | // General types. |
| // | | // |
| | |
| // | | // |
| | |
| skipping to change at line 83 | | skipping to change at line 90 |
| #ifdef __IPHLPAPI_H__ | | #ifdef __IPHLPAPI_H__ |
| | |
| // | | // |
| // User Mode. This file should be included from iphlpapi.h | | // User Mode. This file should be included from iphlpapi.h |
| // User should include ws2ipdef.h to use these APIs. | | // User should include ws2ipdef.h to use these APIs. |
| // | | // |
| | |
| #define NETIO_STATUS DWORD | | #define NETIO_STATUS DWORD |
| #define NETIO_SUCCESS(x) ((x) == NO_ERROR) | | #define NETIO_SUCCESS(x) ((x) == NO_ERROR) |
| #define NETIOAPI_API_ WINAPI | | #define NETIOAPI_API_ WINAPI |
|
| | | #define _NETIOAPI_SUCCESS_ _Success_(return==NO_ERROR) |
| #else | | #else |
| | |
| // | | // |
| // Kernel Mode. | | // Kernel Mode. |
| // | | // |
| | |
| #include <ws2def.h> | | #include <ws2def.h> |
| #include <ws2ipdef.h> | | #include <ws2ipdef.h> |
| #include <ifdef.h> | | #include <ifdef.h> |
| #include <nldef.h> | | #include <nldef.h> |
| | |
| #define NETIO_STATUS NTSTATUS | | #define NETIO_STATUS NTSTATUS |
| #define NETIO_SUCCESS(x) NT_SUCCESS(x) | | #define NETIO_SUCCESS(x) NT_SUCCESS(x) |
| #define NETIOAPI_API_ NTAPI | | #define NETIOAPI_API_ NTAPI |
|
| | | #define _NETIOAPI_SUCCESS_ |
| #endif | | #endif |
| | |
| #define NETIOAPI_API NETIO_STATUS NETIOAPI_API_ | | #define NETIOAPI_API NETIO_STATUS NETIOAPI_API_ |
| | |
| typedef enum _MIB_NOTIFICATION_TYPE { | | typedef enum _MIB_NOTIFICATION_TYPE { |
| // | | // |
| // ParameterChange. | | // ParameterChange. |
| // | | // |
| MibParameterNotification, | | MibParameterNotification, |
| // | | // |
| | |
| skipping to change at line 205 | | skipping to change at line 212 |
| ULONG64 OutMulticastOctets; | | ULONG64 OutMulticastOctets; |
| ULONG64 OutBroadcastOctets; | | ULONG64 OutBroadcastOctets; |
| ULONG64 OutQLen; | | ULONG64 OutQLen; |
| } MIB_IF_ROW2, *PMIB_IF_ROW2; | | } MIB_IF_ROW2, *PMIB_IF_ROW2; |
| | |
| typedef struct _MIB_IF_TABLE2 { | | typedef struct _MIB_IF_TABLE2 { |
| ULONG NumEntries; | | ULONG NumEntries; |
| MIB_IF_ROW2 Table[ANY_SIZE]; | | MIB_IF_ROW2 Table[ANY_SIZE]; |
| } MIB_IF_TABLE2, *PMIB_IF_TABLE2; | | } MIB_IF_TABLE2, *PMIB_IF_TABLE2; |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIfEntry2( | | GetIfEntry2( |
|
| __inout PMIB_IF_ROW2 Row | | _Inout_ PMIB_IF_ROW2 Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves information for the specified interface on the local computer. | | Retrieves information for the specified interface on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Supplies a MIB_IF_ROW2 structure with either the Luid or Index | | Row - Supplies a MIB_IF_ROW2 structure with either the Luid or Index |
| | |
| skipping to change at line 238 | | skipping to change at line 245 |
| | |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 1. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| | |
| On output, the remaining fields of Row are filled in. | | On output, the remaining fields of Row are filled in. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIfTable2( | | GetIfTable2( |
|
| __deref_out PMIB_IF_TABLE2 *Table | | _Outptr_ PMIB_IF_TABLE2 *Table |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves the MIB-II interface table. | | Retrieves the MIB-II interface table. |
| | |
| Arguments: | | Arguments: |
| | |
| Table - Returns the table of interfaces in a MIB_IFTABLE2 structure. | | Table - Returns the table of interfaces in a MIB_IFTABLE2 structure. |
| | |
| skipping to change at line 272 | | skipping to change at line 279 |
| | |
| The API allocates the buffer for Table. Use FreeMibTable to free it. | | The API allocates the buffer for Table. Use FreeMibTable to free it. |
| | |
| --*/ | | --*/ |
| | |
| typedef enum _MIB_IF_TABLE_LEVEL { | | typedef enum _MIB_IF_TABLE_LEVEL { |
| MibIfTableNormal, | | MibIfTableNormal, |
| MibIfTableRaw | | MibIfTableRaw |
| } MIB_IF_TABLE_LEVEL, *PMIB_IF_TABLE_LEVEL; | | } MIB_IF_TABLE_LEVEL, *PMIB_IF_TABLE_LEVEL; |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIfTable2Ex( | | GetIfTable2Ex( |
|
| __in MIB_IF_TABLE_LEVEL Level, | | _In_ MIB_IF_TABLE_LEVEL Level, |
| __deref_out PMIB_IF_TABLE2 *Table | | _Outptr_ PMIB_IF_TABLE2 *Table |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves the MIB-II interface table. | | Retrieves the MIB-II interface table. |
| | |
| Arguments: | | Arguments: |
| | |
| Table - Returns the table of interfaces in a MIB_IFTABLE2 structure. | | Table - Returns the table of interfaces in a MIB_IFTABLE2 structure. |
| | |
| skipping to change at line 403 | | skipping to change at line 410 |
| } MIB_IFSTACK_TABLE, *PMIB_IFSTACK_TABLE; | | } MIB_IFSTACK_TABLE, *PMIB_IFSTACK_TABLE; |
| | |
| typedef struct _MIB_INVERTEDIFSTACK_TABLE { | | typedef struct _MIB_INVERTEDIFSTACK_TABLE { |
| ULONG NumEntries; | | ULONG NumEntries; |
| MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE]; | | MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE]; |
| } MIB_INVERTEDIFSTACK_TABLE, *PMIB_INVERTEDIFSTACK_TABLE; | | } MIB_INVERTEDIFSTACK_TABLE, *PMIB_INVERTEDIFSTACK_TABLE; |
| | |
| typedef | | typedef |
| VOID | | VOID |
| (NETIOAPI_API_ *PIPINTERFACE_CHANGE_CALLBACK) ( | | (NETIOAPI_API_ *PIPINTERFACE_CHANGE_CALLBACK) ( |
|
| __in PVOID CallerContext, | | _In_ PVOID CallerContext, |
| __in PMIB_IPINTERFACE_ROW Row OPTIONAL, | | _In_ PMIB_IPINTERFACE_ROW Row OPTIONAL, |
| __in MIB_NOTIFICATION_TYPE NotificationType | | _In_ MIB_NOTIFICATION_TYPE NotificationType |
| ); | | ); |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | typedef struct _MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES { |
| __success(return==STATUS_SUCCESS) | | NL_BANDWIDTH_INFORMATION InboundBandwidthInformation; |
| | NL_BANDWIDTH_INFORMATION OutboundBandwidthInformation; |
| | } MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES, |
| | *PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES; |
| | |
| | _IRQL_requires_max_(PASSIVE_LEVEL) |
| | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIfStackTable( | | GetIfStackTable( |
|
| __deref_out PMIB_IFSTACK_TABLE *Table | | _Outptr_ PMIB_IFSTACK_TABLE *Table |
| ); | | ); |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetInvertedIfStackTable( | | GetInvertedIfStackTable( |
|
| __deref_out PMIB_INVERTEDIFSTACK_TABLE *Table | | _Outptr_ PMIB_INVERTEDIFSTACK_TABLE *Table |
| ); | | ); |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpInterfaceEntry( | | GetIpInterfaceEntry( |
|
| __inout PMIB_IPINTERFACE_ROW Row | | _Inout_ PMIB_IPINTERFACE_ROW Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves IP information for the specified interface on the local computer. | | Retrieves IP information for the specified interface on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Supplies a MIB_IPINTERFACE_ROW structure with either the Luid or | | Row - Supplies a MIB_IPINTERFACE_ROW structure with either the Luid or |
| | |
| skipping to change at line 456 | | skipping to change at line 469 |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. Family: it must be either AF_INET or AF_INET6 | | 1. Family: it must be either AF_INET or AF_INET6 |
| 2. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 2. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| | |
| On output, the remaining fields of Row are filled in. | | On output, the remaining fields of Row are filled in. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpInterfaceTable( | | GetIpInterfaceTable( |
|
| __in ADDRESS_FAMILY Family, | | _In_ ADDRESS_FAMILY Family, |
| __deref_out PMIB_IPINTERFACE_TABLE *Table | | _Outptr_ PMIB_IPINTERFACE_TABLE *Table |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves the network-layer interface table. | | Retrieves the network-layer interface table. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 494 | | skipping to change at line 507 |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| Notes: | | Notes: |
| | |
| The API allocates the buffer for Table. Use FreeMibTable to free it. | | The API allocates the buffer for Table. Use FreeMibTable to free it. |
| | |
| --*/ | | --*/ |
| | |
|
| | _IRQL_requires_max_(PASSIVE_LEVEL) |
| VOID | | VOID |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | |
| NETIOAPI_API_ | | NETIOAPI_API_ |
| InitializeIpInterfaceEntry( | | InitializeIpInterfaceEntry( |
|
| __inout PMIB_IPINTERFACE_ROW Row | | _Inout_ PMIB_IPINTERFACE_ROW Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Initialize the MIB_IPINTERFACE_ROW entry for use in SetIpInterfaceRow. | | Initialize the MIB_IPINTERFACE_ROW entry for use in SetIpInterfaceRow. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Returns an initialized MIB_IPINTERFACE_ROW structure. | | Row - Returns an initialized MIB_IPINTERFACE_ROW structure. |
| | |
| skipping to change at line 522 | | skipping to change at line 535 |
| None. | | None. |
| | |
| Notes: | | Notes: |
| | |
| InitializeIpInterfaceEntry must be used to initialize the fields of | | InitializeIpInterfaceEntry must be used to initialize the fields of |
| MIB_IPINTERFACE_ROW with default values. The caller can then update the | | MIB_IPINTERFACE_ROW with default values. The caller can then update the |
| fields it wishes to modify and invoke SetIpInterfaceEntry. | | fields it wishes to modify and invoke SetIpInterfaceEntry. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| NotifyIpInterfaceChange( | | NotifyIpInterfaceChange( |
|
| __in ADDRESS_FAMILY Family, | | _In_ ADDRESS_FAMILY Family, |
| __in PIPINTERFACE_CHANGE_CALLBACK Callback, | | _In_ PIPINTERFACE_CHANGE_CALLBACK Callback, |
| __in PVOID CallerContext, | | _In_opt_ PVOID CallerContext, |
| __in BOOLEAN InitialNotification, | | _In_ BOOLEAN InitialNotification, |
| __inout OUT HANDLE *NotificationHandle | | _Inout_ HANDLE *NotificationHandle |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Register for notification for IP interface changes. | | Register for notification for IP interface changes. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 573 | | skipping to change at line 586 |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| Notes: | | Notes: |
| | |
| 1. Invokation of the callback function is serialized. | | 1. Invokation of the callback function is serialized. |
| | |
| 2. Use CancelMibChangeNotify2 to deregister for change notifications. | | 2. Use CancelMibChangeNotify2 to deregister for change notifications. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| SetIpInterfaceEntry( | | SetIpInterfaceEntry( |
|
| __inout PMIB_IPINTERFACE_ROW Row | | _Inout_ PMIB_IPINTERFACE_ROW Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Set the properties of an IP interface. | | Set the properties of an IP interface. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Supplies a MIB_IPINTERFACE_ROW structure. | | Row - Supplies a MIB_IPINTERFACE_ROW structure. |
| | |
| skipping to change at line 608 | | skipping to change at line 621 |
| MIB_IPINTERFACE_ROW with default values. The caller can then update the | | MIB_IPINTERFACE_ROW with default values. The caller can then update the |
| fields it wishes to modify and invoke SetIpInterfaceEntry. | | fields it wishes to modify and invoke SetIpInterfaceEntry. |
| | |
| On input, the following key fields of Row must be initialized after | | On input, the following key fields of Row must be initialized after |
| invoking InitializeIpInterfaceEntry: | | invoking InitializeIpInterfaceEntry: |
| 1. Family: To AF_INET or AF_INET6. | | 1. Family: To AF_INET or AF_INET6. |
| 2. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 2. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| | |
| --*/ | | --*/ |
| | |
|
| | _IRQL_requires_max_(PASSIVE_LEVEL) |
| | _NETIOAPI_SUCCESS_ |
| | NETIOAPI_API |
| | GetIpNetworkConnectionBandwidthEstimates( |
| | _In_ NET_IFINDEX InterfaceIndex, |
| | _In_ ADDRESS_FAMILY AddressFamily, |
| | _Out_ PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES BandwidthEstimates |
| | ); |
| | /*++ |
| | |
| | Routine Description: |
| | |
| | Retrieves historical bandwidth estimates for the network connection of |
| | the specified interface. |
| | |
| | Arguments: |
| | |
| | InterfaceIndex - Supplies the interface index. |
| | |
| | AddressFamily - Supplies the address family associated with the interface. |
| | |
| | BandwidthEstimates - Returns the historical bandwidth estimates. |
| | |
| | Return Value: |
| | |
| | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| | --*/ |
| | |
| // | | // |
| // Unicast address management routines. | | // Unicast address management routines. |
| // | | // |
| | |
| // | | // |
| // The structure for unicast IP Address management. | | // The structure for unicast IP Address management. |
| // | | // |
| typedef struct _MIB_UNICASTIPADDRESS_ROW { | | typedef struct _MIB_UNICASTIPADDRESS_ROW { |
| // | | // |
| // Key Structure. | | // Key Structure. |
| | |
| skipping to change at line 649 | | skipping to change at line 693 |
| } MIB_UNICASTIPADDRESS_ROW, *PMIB_UNICASTIPADDRESS_ROW; | | } MIB_UNICASTIPADDRESS_ROW, *PMIB_UNICASTIPADDRESS_ROW; |
| | |
| typedef struct _MIB_UNICASTIPADDRESS_TABLE { | | typedef struct _MIB_UNICASTIPADDRESS_TABLE { |
| ULONG NumEntries; | | ULONG NumEntries; |
| MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE]; | | MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE]; |
| } MIB_UNICASTIPADDRESS_TABLE, *PMIB_UNICASTIPADDRESS_TABLE; | | } MIB_UNICASTIPADDRESS_TABLE, *PMIB_UNICASTIPADDRESS_TABLE; |
| | |
| typedef | | typedef |
| VOID | | VOID |
| (NETIOAPI_API_ *PUNICAST_IPADDRESS_CHANGE_CALLBACK) ( | | (NETIOAPI_API_ *PUNICAST_IPADDRESS_CHANGE_CALLBACK) ( |
|
| __in PVOID CallerContext, | | _In_ PVOID CallerContext, |
| __in_opt PMIB_UNICASTIPADDRESS_ROW Row, | | _In_opt_ PMIB_UNICASTIPADDRESS_ROW Row, |
| __in MIB_NOTIFICATION_TYPE NotificationType | | _In_ MIB_NOTIFICATION_TYPE NotificationType |
| ); | | ); |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| CreateUnicastIpAddressEntry( | | CreateUnicastIpAddressEntry( |
|
| __in CONST MIB_UNICASTIPADDRESS_ROW *Row | | _In_ CONST MIB_UNICASTIPADDRESS_ROW *Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Create a unicast IP address entry on the local computer. | | Create a unicast IP address entry on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Supplies a MIB_UNICASTIPADDRESS_ROW structure. | | Row - Supplies a MIB_UNICASTIPADDRESS_ROW structure. |
| | |
| skipping to change at line 689 | | skipping to change at line 733 |
| MIB_UNICASTIPADDRESS_ROW with default values. The caller can then update | | MIB_UNICASTIPADDRESS_ROW with default values. The caller can then update |
| the fields it wishes to modify and invoke CreateIpInterfaceEntry. | | the fields it wishes to modify and invoke CreateIpInterfaceEntry. |
| | |
| On input, the following key fields of Row must be initialized after | | On input, the following key fields of Row must be initialized after |
| invoking InitializeUnicastIpAddressEntry: | | invoking InitializeUnicastIpAddressEntry: |
| 1. Address to a valid IPv4 or IPv6 unicast address. | | 1. Address to a valid IPv4 or IPv6 unicast address. |
| 2. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 2. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| DeleteUnicastIpAddressEntry( | | DeleteUnicastIpAddressEntry( |
|
| __in CONST MIB_UNICASTIPADDRESS_ROW *Row | | _In_ CONST MIB_UNICASTIPADDRESS_ROW *Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Delete a unicast IP address entry on the local computer. | | Delete a unicast IP address entry on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Supplies a MIB_UNICASTIPADDRESS_ROW structure. | | Row - Supplies a MIB_UNICASTIPADDRESS_ROW structure. |
| | |
| skipping to change at line 719 | | skipping to change at line 763 |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. Address to a valid IPv4 or IPv6 unicast address. | | 1. Address to a valid IPv4 or IPv6 unicast address. |
| 2. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 2. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetUnicastIpAddressEntry( | | GetUnicastIpAddressEntry( |
|
| __inout PMIB_UNICASTIPADDRESS_ROW Row | | _Inout_ PMIB_UNICASTIPADDRESS_ROW Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves information for the specified unicast IP address entry on the | | Retrieves information for the specified unicast IP address entry on the |
| local computer. | | local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| | |
| skipping to change at line 752 | | skipping to change at line 796 |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. Address to a valid IPv4 or IPv6 unicast address. | | 1. Address to a valid IPv4 or IPv6 unicast address. |
| 2. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 2. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| | |
| On output, the remaining fields of Row are filled in. | | On output, the remaining fields of Row are filled in. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetUnicastIpAddressTable( | | GetUnicastIpAddressTable( |
|
| __in ADDRESS_FAMILY Family, | | _In_ ADDRESS_FAMILY Family, |
| __deref_out PMIB_UNICASTIPADDRESS_TABLE *Table | | _Outptr_ PMIB_UNICASTIPADDRESS_TABLE *Table |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves the unicast IP address table on a local computer. | | Retrieves the unicast IP address table on a local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 791 | | skipping to change at line 835 |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| Notes: | | Notes: |
| | |
| The API allocates the buffer for Table. Use FreeMibTable to free it. | | The API allocates the buffer for Table. Use FreeMibTable to free it. |
| | |
| --*/ | | --*/ |
| | |
|
| | _IRQL_requires_max_(PASSIVE_LEVEL) |
| VOID | | VOID |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | |
| NETIOAPI_API_ | | NETIOAPI_API_ |
| InitializeUnicastIpAddressEntry( | | InitializeUnicastIpAddressEntry( |
|
| __out PMIB_UNICASTIPADDRESS_ROW Row | | _Out_ PMIB_UNICASTIPADDRESS_ROW Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Initialize the MIB_UNICASTIPADDRESS_ROW entry for use in | | Initialize the MIB_UNICASTIPADDRESS_ROW entry for use in |
| CreateUnicastIpAddressEntry and SetUnicastIpAddressEntry. | | CreateUnicastIpAddressEntry and SetUnicastIpAddressEntry. |
| | |
| Arguments: | | Arguments: |
| | |
| | |
| skipping to change at line 821 | | skipping to change at line 865 |
| | |
| Notes: | | Notes: |
| | |
| InitializeUnicastIpAddressEntry must be used to initialize the fields of | | InitializeUnicastIpAddressEntry must be used to initialize the fields of |
| MIB_UNICASTIPADDRESS_ROW with default values. The caller can then update | | MIB_UNICASTIPADDRESS_ROW with default values. The caller can then update |
| the fields it wishes to modify and invoke CreateUnicastIpAddressEntry or | | the fields it wishes to modify and invoke CreateUnicastIpAddressEntry or |
| SetUnicastIpAddressEntry. | | SetUnicastIpAddressEntry. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| NotifyUnicastIpAddressChange( | | NotifyUnicastIpAddressChange( |
|
| __in ADDRESS_FAMILY Family, | | _In_ ADDRESS_FAMILY Family, |
| __in PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback, | | _In_ PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback, |
| __in PVOID CallerContext, | | _In_opt_ PVOID CallerContext, |
| __in BOOLEAN InitialNotification, | | _In_ BOOLEAN InitialNotification, |
| __inout HANDLE *NotificationHandle | | _Inout_ HANDLE *NotificationHandle |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Register for notification for unicast IP address changes. | | Register for notification for unicast IP address changes. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 875 | | skipping to change at line 919 |
| | |
| 1. Invokation of the callback function is serialized. | | 1. Invokation of the callback function is serialized. |
| | |
| 2. Use CancelMibChangeNotify2 to deregister for change notifications. | | 2. Use CancelMibChangeNotify2 to deregister for change notifications. |
| | |
| --*/ | | --*/ |
| | |
| typedef | | typedef |
| VOID | | VOID |
| (NETIOAPI_API_ *PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK) ( | | (NETIOAPI_API_ *PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK) ( |
|
| __in PVOID CallerContext, | | _In_ PVOID CallerContext, |
| __in PMIB_UNICASTIPADDRESS_TABLE AddressTable | | _In_ PMIB_UNICASTIPADDRESS_TABLE AddressTable |
| ); | | ); |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| NotifyStableUnicastIpAddressTable( | | NotifyStableUnicastIpAddressTable( |
|
| __in ADDRESS_FAMILY Family, | | _In_ ADDRESS_FAMILY Family, |
| __deref_out PMIB_UNICASTIPADDRESS_TABLE* Table, | | _Outptr_ PMIB_UNICASTIPADDRESS_TABLE* Table, |
| __in PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, | | _In_ PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, |
| __in PVOID CallerContext, | | _In_ PVOID CallerContext, |
| __inout HANDLE *NotificationHandle | | _Inout_ HANDLE *NotificationHandle |
| ); | | ); |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| SetUnicastIpAddressEntry( | | SetUnicastIpAddressEntry( |
|
| __in CONST MIB_UNICASTIPADDRESS_ROW *Row | | _In_ CONST MIB_UNICASTIPADDRESS_ROW *Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Set the properties of an unicast IP address. | | Set the properties of an unicast IP address. |
| | |
| Arguments: | | Arguments: |
| | |
| Address - Supplies a MIB_UNICASTIPADDRESS_ROW structure. | | Address - Supplies a MIB_UNICASTIPADDRESS_ROW structure. |
| | |
| skipping to change at line 948 | | skipping to change at line 992 |
| // Read-Only Fields. | | // Read-Only Fields. |
| // | | // |
| SCOPE_ID ScopeId; | | SCOPE_ID ScopeId; |
| } MIB_ANYCASTIPADDRESS_ROW, *PMIB_ANYCASTIPADDRESS_ROW; | | } MIB_ANYCASTIPADDRESS_ROW, *PMIB_ANYCASTIPADDRESS_ROW; |
| | |
| typedef struct _MIB_ANYCASTIPADDRESS_TABLE { | | typedef struct _MIB_ANYCASTIPADDRESS_TABLE { |
| ULONG NumEntries; | | ULONG NumEntries; |
| MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE]; | | MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE]; |
| } MIB_ANYCASTIPADDRESS_TABLE, *PMIB_ANYCASTIPADDRESS_TABLE; | | } MIB_ANYCASTIPADDRESS_TABLE, *PMIB_ANYCASTIPADDRESS_TABLE; |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| CreateAnycastIpAddressEntry( | | CreateAnycastIpAddressEntry( |
|
| __in CONST MIB_ANYCASTIPADDRESS_ROW *Row | | _In_ CONST MIB_ANYCASTIPADDRESS_ROW *Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Create an anycast IP address entry on the local computer. | | Create an anycast IP address entry on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Address - Supplies a MIB_ANYCASTIPADDRESS_ROW structure. | | Address - Supplies a MIB_ANYCASTIPADDRESS_ROW structure. |
| | |
| skipping to change at line 978 | | skipping to change at line 1022 |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. Address to a valid IPv4 or IPv6 anycast address. | | 1. Address to a valid IPv4 or IPv6 anycast address. |
| 2. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 2. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| DeleteAnycastIpAddressEntry( | | DeleteAnycastIpAddressEntry( |
|
| __in CONST MIB_ANYCASTIPADDRESS_ROW *Row | | _In_ CONST MIB_ANYCASTIPADDRESS_ROW *Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Delete an anycast IP address entry on the local computer. | | Delete an anycast IP address entry on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Address - Supplies a MIB_ANYCASTIPADDRESS_ROW structure. | | Address - Supplies a MIB_ANYCASTIPADDRESS_ROW structure. |
| | |
| skipping to change at line 1008 | | skipping to change at line 1052 |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. Address to a valid IPv4 or IPv6 anycast address. | | 1. Address to a valid IPv4 or IPv6 anycast address. |
| 2. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 2. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetAnycastIpAddressEntry( | | GetAnycastIpAddressEntry( |
|
| __inout PMIB_ANYCASTIPADDRESS_ROW Row | | _Inout_ PMIB_ANYCASTIPADDRESS_ROW Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves information for the specified anycast IP address entry on the | | Retrieves information for the specified anycast IP address entry on the |
| local computer. | | local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| | |
| skipping to change at line 1041 | | skipping to change at line 1085 |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. Address to a valid IPv4 or IPv6 anycast address. | | 1. Address to a valid IPv4 or IPv6 anycast address. |
| 2. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 2. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| | |
| On output, the remaining fields of Row are filled in. | | On output, the remaining fields of Row are filled in. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetAnycastIpAddressTable( | | GetAnycastIpAddressTable( |
|
| __in ADDRESS_FAMILY Family, | | _In_ ADDRESS_FAMILY Family, |
| __deref_out PMIB_ANYCASTIPADDRESS_TABLE *Table | | _Outptr_ PMIB_ANYCASTIPADDRESS_TABLE *Table |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves the anycast IP address table. | | Retrieves the anycast IP address table. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 1102 | | skipping to change at line 1146 |
| // Read-Only Fields. | | // Read-Only Fields. |
| // | | // |
| SCOPE_ID ScopeId; | | SCOPE_ID ScopeId; |
| } MIB_MULTICASTIPADDRESS_ROW, *PMIB_MULTICASTIPADDRESS_ROW; | | } MIB_MULTICASTIPADDRESS_ROW, *PMIB_MULTICASTIPADDRESS_ROW; |
| | |
| typedef struct _MIB_MULTICASTIPADDRESS_TABLE { | | typedef struct _MIB_MULTICASTIPADDRESS_TABLE { |
| ULONG NumEntries; | | ULONG NumEntries; |
| MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE]; | | MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE]; |
| } MIB_MULTICASTIPADDRESS_TABLE, *PMIB_MULTICASTIPADDRESS_TABLE; | | } MIB_MULTICASTIPADDRESS_TABLE, *PMIB_MULTICASTIPADDRESS_TABLE; |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetMulticastIpAddressEntry( | | GetMulticastIpAddressEntry( |
|
| __inout PMIB_MULTICASTIPADDRESS_ROW Row | | _Inout_ PMIB_MULTICASTIPADDRESS_ROW Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves information for the specified mulitcast IP address entry on the | | Retrieves information for the specified mulitcast IP address entry on the |
| local computer. | | local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| | |
| skipping to change at line 1135 | | skipping to change at line 1179 |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized. | | On input, the following key fields of Row must be initialized. |
| 1. Address to a valid IPv4 or IPv6 multicast address. | | 1. Address to a valid IPv4 or IPv6 multicast address. |
| 2. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 2. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| | |
| On output, the remaining fields of Row are filled in. | | On output, the remaining fields of Row are filled in. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetMulticastIpAddressTable( | | GetMulticastIpAddressTable( |
|
| __in ADDRESS_FAMILY Family, | | _In_ ADDRESS_FAMILY Family, |
| __deref_out PMIB_MULTICASTIPADDRESS_TABLE *Table | | _Outptr_ PMIB_MULTICASTIPADDRESS_TABLE *Table |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves the multicast IP address table on the local computer. | | Retrieves the multicast IP address table on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 1221 | | skipping to change at line 1265 |
| } MIB_IPFORWARD_ROW2, *PMIB_IPFORWARD_ROW2; | | } MIB_IPFORWARD_ROW2, *PMIB_IPFORWARD_ROW2; |
| | |
| typedef struct _MIB_IPFORWARD_TABLE2 { | | typedef struct _MIB_IPFORWARD_TABLE2 { |
| ULONG NumEntries; | | ULONG NumEntries; |
| MIB_IPFORWARD_ROW2 Table[ANY_SIZE]; | | MIB_IPFORWARD_ROW2 Table[ANY_SIZE]; |
| } MIB_IPFORWARD_TABLE2, *PMIB_IPFORWARD_TABLE2; | | } MIB_IPFORWARD_TABLE2, *PMIB_IPFORWARD_TABLE2; |
| | |
| typedef | | typedef |
| VOID | | VOID |
| (NETIOAPI_API_ *PIPFORWARD_CHANGE_CALLBACK) ( | | (NETIOAPI_API_ *PIPFORWARD_CHANGE_CALLBACK) ( |
|
| __in PVOID CallerContext, | | _In_ PVOID CallerContext, |
| __in_opt PMIB_IPFORWARD_ROW2 Row, | | _In_opt_ PMIB_IPFORWARD_ROW2 Row, |
| __in MIB_NOTIFICATION_TYPE NotificationType | | _In_ MIB_NOTIFICATION_TYPE NotificationType |
| ); | | ); |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| CreateIpForwardEntry2( | | CreateIpForwardEntry2( |
|
| __in CONST MIB_IPFORWARD_ROW2 *Row | | _In_ CONST MIB_IPFORWARD_ROW2 *Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Create a route on the local computer. | | Create a route on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Supplies a MIB_IPFORWARD_ROW2 structure. | | Row - Supplies a MIB_IPFORWARD_ROW2 structure. |
| | |
| skipping to change at line 1262 | | skipping to change at line 1306 |
| fields it wishes to modify and invoke CreateIpForwardEntry2. | | fields it wishes to modify and invoke CreateIpForwardEntry2. |
| | |
| On input, the following key fields of Row must be initialized after | | On input, the following key fields of Row must be initialized after |
| invoking InitializeIpForwardEntry: | | invoking InitializeIpForwardEntry: |
| 1. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 1. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| 2. DestinationPrefix. | | 2. DestinationPrefix. |
| 3. NextHop. | | 3. NextHop. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| DeleteIpForwardEntry2( | | DeleteIpForwardEntry2( |
|
| __in CONST MIB_IPFORWARD_ROW2 *Row | | _In_ CONST MIB_IPFORWARD_ROW2 *Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Delete a route on the local computer. | | Delete a route on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Supplies a MIB_IPFORWARD_ROW2 structure. | | Row - Supplies a MIB_IPFORWARD_ROW2 structure. |
| | |
| skipping to change at line 1293 | | skipping to change at line 1337 |
| | |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 1. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| 2. DestinationPrefix. | | 2. DestinationPrefix. |
| 3. NextHop. | | 3. NextHop. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetBestRoute2( | | GetBestRoute2( |
|
| __in_opt NET_LUID *InterfaceLuid, | | _In_opt_ NET_LUID *InterfaceLuid, |
| __in NET_IFINDEX InterfaceIndex, | | _In_ NET_IFINDEX InterfaceIndex, |
| __in_opt CONST SOCKADDR_INET *SourceAddress, | | _In_opt_ CONST SOCKADDR_INET *SourceAddress, |
| __in CONST SOCKADDR_INET *DestinationAddress, | | _In_ CONST SOCKADDR_INET *DestinationAddress, |
| __in ULONG AddressSortOptions, | | _In_ ULONG AddressSortOptions, |
| __out PMIB_IPFORWARD_ROW2 BestRoute, | | _Out_ PMIB_IPFORWARD_ROW2 BestRoute, |
| __out SOCKADDR_INET *BestSourceAddress | | _Out_ SOCKADDR_INET *BestSourceAddress |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieve the best route between source and destination address on a local | | Retrieve the best route between source and destination address on a local |
| computer. | | computer. |
| | |
| Arguments: | | Arguments: |
| | |
| | |
| skipping to change at line 1343 | | skipping to change at line 1387 |
| | |
| Notes: | | Notes: |
| | |
| On input, the following parameters must be supplied: | | On input, the following parameters must be supplied: |
| 1. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 1. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| 2. SourceAddress. | | 2. SourceAddress. |
| 3. DestinationAddress. | | 3. DestinationAddress. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpForwardEntry2( | | GetIpForwardEntry2( |
|
| __inout PMIB_IPFORWARD_ROW2 Row | | _Inout_ PMIB_IPFORWARD_ROW2 Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves information for the specified route entry on the local computer. | | Retrieves information for the specified route entry on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Route - Supplies a MIB_IPFORWARD_ROW2 structure. | | Route - Supplies a MIB_IPFORWARD_ROW2 structure. |
| | |
| skipping to change at line 1378 | | skipping to change at line 1422 |
| 1. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 1. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| 2. DestinationPrefix and NextHop can be specified. | | 2. DestinationPrefix and NextHop can be specified. |
| | |
| On output, the remaining fields of Row are filled in. | | On output, the remaining fields of Row are filled in. |
| | |
| If one or more routes matches the specified criteria, | | If one or more routes matches the specified criteria, |
| this API matches the first entry. | | this API matches the first entry. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpForwardTable2( | | GetIpForwardTable2( |
|
| __in ADDRESS_FAMILY Family, | | _In_ ADDRESS_FAMILY Family, |
| __deref_out PMIB_IPFORWARD_TABLE2 *Table | | _Outptr_ PMIB_IPFORWARD_TABLE2 *Table |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves the route table on a local computer. | | Retrieves the route table on a local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 1416 | | skipping to change at line 1460 |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| Notes: | | Notes: |
| | |
| The API allocates the buffer for Table. Use FreeMibTable to free it. | | The API allocates the buffer for Table. Use FreeMibTable to free it. |
| | |
| --*/ | | --*/ |
| | |
|
| | _IRQL_requires_max_(PASSIVE_LEVEL) |
| VOID | | VOID |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | |
| NETIOAPI_API_ | | NETIOAPI_API_ |
| InitializeIpForwardEntry( | | InitializeIpForwardEntry( |
|
| __out PMIB_IPFORWARD_ROW2 Row | | _Out_ PMIB_IPFORWARD_ROW2 Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Initialize the MIB_IPFORWARD_ROW2 entry for use in SetIpForwardEntry2. | | Initialize the MIB_IPFORWARD_ROW2 entry for use in SetIpForwardEntry2. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Returns an initialized PMIB_IPFORWARD_ROW2 structure. | | Row - Returns an initialized PMIB_IPFORWARD_ROW2 structure. |
| | |
| skipping to change at line 1444 | | skipping to change at line 1488 |
| None. | | None. |
| | |
| Notes: | | Notes: |
| | |
| InitializeIpForwardEntry must be used to initialize the fields of | | InitializeIpForwardEntry must be used to initialize the fields of |
| MIB_IPFORWARD_ROW2 with default values. The caller can then update the | | MIB_IPFORWARD_ROW2 with default values. The caller can then update the |
| fields it wishes to modify and invoke SetIpForwardEntry2. | | fields it wishes to modify and invoke SetIpForwardEntry2. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| NotifyRouteChange2( | | NotifyRouteChange2( |
|
| __in ADDRESS_FAMILY AddressFamily, | | _In_ ADDRESS_FAMILY AddressFamily, |
| __in PIPFORWARD_CHANGE_CALLBACK Callback, | | _In_ PIPFORWARD_CHANGE_CALLBACK Callback, |
| __in PVOID CallerContext, | | _In_ PVOID CallerContext, |
| __in BOOLEAN InitialNotification, | | _In_ BOOLEAN InitialNotification, |
| __inout HANDLE *NotificationHandle | | _Inout_ HANDLE *NotificationHandle |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Register for notification for route changes. | | Register for notification for route changes. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 1495 | | skipping to change at line 1539 |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| Notes: | | Notes: |
| | |
| 1. Invokation of the callback function is serialized. | | 1. Invokation of the callback function is serialized. |
| | |
| 2. Use CancelMibChangeNotify2 to deregister for change notifications. | | 2. Use CancelMibChangeNotify2 to deregister for change notifications. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| SetIpForwardEntry2( | | SetIpForwardEntry2( |
|
| __in CONST MIB_IPFORWARD_ROW2 *Route | | _In_ CONST MIB_IPFORWARD_ROW2 *Route |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Set the properties of a route entry. | | Set the properties of a route entry. |
| | |
| Arguments: | | Arguments: |
| | |
| Route - Supplies a MIB_UNICASTIPADDRESS_ROW structure. | | Route - Supplies a MIB_UNICASTIPADDRESS_ROW structure. |
| | |
| skipping to change at line 1586 | | skipping to change at line 1630 |
| ULONG64 LinkTransmitSpeed; | | ULONG64 LinkTransmitSpeed; |
| ULONG64 LinkReceiveSpeed; | | ULONG64 LinkReceiveSpeed; |
| | |
| } MIB_IPPATH_ROW, *PMIB_IPPATH_ROW; | | } MIB_IPPATH_ROW, *PMIB_IPPATH_ROW; |
| | |
| typedef struct _MIB_IPPATH_TABLE { | | typedef struct _MIB_IPPATH_TABLE { |
| ULONG NumEntries; | | ULONG NumEntries; |
| MIB_IPPATH_ROW Table[ANY_SIZE]; | | MIB_IPPATH_ROW Table[ANY_SIZE]; |
| } MIB_IPPATH_TABLE, *PMIB_IPPATH_TABLE; | | } MIB_IPPATH_TABLE, *PMIB_IPPATH_TABLE; |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| FlushIpPathTable( | | FlushIpPathTable( |
|
| __in ADDRESS_FAMILY Family | | _In_ ADDRESS_FAMILY Family |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Flush the IP Path table on the local computer. | | Flush the IP Path table on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 1616 | | skipping to change at line 1660 |
| AF_UNSPEC: Flush both IPv4 and IPv6 path table. | | AF_UNSPEC: Flush both IPv4 and IPv6 path table. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpPathEntry( | | GetIpPathEntry( |
|
| __inout PMIB_IPPATH_ROW Row | | _Inout_ PMIB_IPPATH_ROW Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves information for the specified path entry on the local computer. | | Retrieves information for the specified path entry on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Supplies a MIB_IPPATH_ROW structure. | | Row - Supplies a MIB_IPPATH_ROW structure. |
| | |
| skipping to change at line 1649 | | skipping to change at line 1693 |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 1. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| 2. Source. | | 2. Source. |
| 3. Destination. | | 3. Destination. |
| | |
| On output, the remaining fields of Row are filled in. | | On output, the remaining fields of Row are filled in. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpPathTable( | | GetIpPathTable( |
|
| __in ADDRESS_FAMILY Family, | | _In_ ADDRESS_FAMILY Family, |
| __deref_out PMIB_IPPATH_TABLE *Table | | _Outptr_ PMIB_IPPATH_TABLE *Table |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves the path table on a local computer. | | Retrieves the path table on a local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 1729 | | skipping to change at line 1773 |
| ULONG LastReachable; | | ULONG LastReachable; |
| ULONG LastUnreachable; | | ULONG LastUnreachable; |
| } ReachabilityTime; | | } ReachabilityTime; |
| } MIB_IPNET_ROW2, *PMIB_IPNET_ROW2; | | } MIB_IPNET_ROW2, *PMIB_IPNET_ROW2; |
| | |
| typedef struct _MIB_IPNET_TABLE2 { | | typedef struct _MIB_IPNET_TABLE2 { |
| ULONG NumEntries; | | ULONG NumEntries; |
| MIB_IPNET_ROW2 Table[ANY_SIZE]; | | MIB_IPNET_ROW2 Table[ANY_SIZE]; |
| } MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2; | | } MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2; |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| CreateIpNetEntry2( | | CreateIpNetEntry2( |
|
| __in CONST MIB_IPNET_ROW2 *Row | | _In_ CONST MIB_IPNET_ROW2 *Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Create a neighbor entry on the local computer. | | Create a neighbor entry on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Supplies a MIB_IPNET_ROW2 structure. | | Row - Supplies a MIB_IPNET_ROW2 structure. |
| | |
| skipping to change at line 1760 | | skipping to change at line 1804 |
| | |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 1. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| 2. Address. | | 2. Address. |
| 3. PhysicalAddress. | | 3. PhysicalAddress. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| DeleteIpNetEntry2( | | DeleteIpNetEntry2( |
|
| __in CONST MIB_IPNET_ROW2 *Row | | _In_ CONST MIB_IPNET_ROW2 *Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Delete a neighbor entry on the local computer. | | Delete a neighbor entry on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Row - Supplies a MIB_IPNET_ROW2 structure. | | Row - Supplies a MIB_IPNET_ROW2 structure. |
| | |
| skipping to change at line 1790 | | skipping to change at line 1834 |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 1. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| 2. Address. | | 2. Address. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| FlushIpNetTable2( | | FlushIpNetTable2( |
|
| __in ADDRESS_FAMILY Family, | | _In_ ADDRESS_FAMILY Family, |
| __in NET_IFINDEX InterfaceIndex | | _In_ NET_IFINDEX InterfaceIndex |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Flush the neighbor entry table on the local computer. | | Flush the neighbor entry table on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 1825 | | skipping to change at line 1869 |
| neighbor entries on all the interfaces. | | neighbor entries on all the interfaces. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpNetEntry2( | | GetIpNetEntry2( |
|
| __inout PMIB_IPNET_ROW2 Row | | _Inout_ PMIB_IPNET_ROW2 Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves information for the specified neighbor entry on the local | | Retrieves information for the specified neighbor entry on the local |
| computer. | | computer. |
| | |
| Arguments: | | Arguments: |
| | |
| | |
| skipping to change at line 1858 | | skipping to change at line 1902 |
| Notes: | | Notes: |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 1. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| 2. Address. | | 2. Address. |
| | |
| On output, the remaining fields of Row are filled in. | | On output, the remaining fields of Row are filled in. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpNetTable2( | | GetIpNetTable2( |
|
| __in ADDRESS_FAMILY Family, | | _In_ ADDRESS_FAMILY Family, |
| __deref_out PMIB_IPNET_TABLE2 *Table | | _Outptr_ PMIB_IPNET_TABLE2 *Table |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Retrieves the neighbor table on the local computer. | | Retrieves the neighbor table on the local computer. |
| | |
| Arguments: | | Arguments: |
| | |
| Family - Supplies the address family. | | Family - Supplies the address family. |
| | |
| skipping to change at line 1896 | | skipping to change at line 1940 |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| Notes: | | Notes: |
| | |
| The API allocates the buffer for Table. Use FreeMibTable to free it. | | The API allocates the buffer for Table. Use FreeMibTable to free it. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| ResolveIpNetEntry2( | | ResolveIpNetEntry2( |
|
| __inout PMIB_IPNET_ROW2 Row, | | _Inout_ PMIB_IPNET_ROW2 Row, |
| __in_opt CONST SOCKADDR_INET *SourceAddress | | _In_opt_ CONST SOCKADDR_INET *SourceAddress |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Resolve the physical address of a specific neighbor. | | Resolve the physical address of a specific neighbor. |
| | |
| Arguments: | | Arguments: |
| | |
| NetEntry - Supplies a MIB_IPNET_ROW2 structure. | | NetEntry - Supplies a MIB_IPNET_ROW2 structure. |
| | |
| skipping to change at line 1936 | | skipping to change at line 1980 |
| best interface to send the request on. | | best interface to send the request on. |
| | |
| On input, the following key fields of Row must be initialized: | | On input, the following key fields of Row must be initialized: |
| 1. At least one of InterfaceLuid or InterfaceIndex must be specified. | | 1. At least one of InterfaceLuid or InterfaceIndex must be specified. |
| 2. Address. | | 2. Address. |
| | |
| On output, the remaining fields of Row are filled in. | | On output, the remaining fields of Row are filled in. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| SetIpNetEntry2( | | SetIpNetEntry2( |
|
| __in PMIB_IPNET_ROW2 Row | | _In_ PMIB_IPNET_ROW2 Row |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Set the physical address of a neighbor entry. | | Set the physical address of a neighbor entry. |
| | |
| Arguments: | | Arguments: |
| | |
| NetEntry - Supplies a MIB_IPNET_ROW2 structure. | | NetEntry - Supplies a MIB_IPNET_ROW2 structure. |
| | |
| skipping to change at line 1975 | | skipping to change at line 2019 |
| --*/ | | --*/ |
| | |
| // | | // |
| // Teredo APIs. | | // Teredo APIs. |
| // | | // |
| #define MIB_INVALID_TEREDO_PORT_NUMBER 0 | | #define MIB_INVALID_TEREDO_PORT_NUMBER 0 |
| | |
| typedef | | typedef |
| VOID | | VOID |
| (NETIOAPI_API_ *PTEREDO_PORT_CHANGE_CALLBACK) ( | | (NETIOAPI_API_ *PTEREDO_PORT_CHANGE_CALLBACK) ( |
|
| __in PVOID CallerContext, | | _In_ PVOID CallerContext, |
| __in USHORT Port, | | _In_ USHORT Port, |
| __inout MIB_NOTIFICATION_TYPE NotificationType | | _Inout_ MIB_NOTIFICATION_TYPE NotificationType |
| ); | | ); |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| NotifyTeredoPortChange( | | NotifyTeredoPortChange( |
|
| __in PTEREDO_PORT_CHANGE_CALLBACK Callback, | | _In_ PTEREDO_PORT_CHANGE_CALLBACK Callback, |
| __in PVOID CallerContext, | | _In_ PVOID CallerContext, |
| __in BOOLEAN InitialNotification, | | _In_ BOOLEAN InitialNotification, |
| __inout HANDLE *NotificationHandle | | _Inout_ HANDLE *NotificationHandle |
| ); | | ); |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| GetTeredoPort( | | GetTeredoPort( |
|
| __out USHORT *Port | | _Out_ USHORT *Port |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Get the Teredo client port. | | Get the Teredo client port. |
| | |
| Arguments: | | Arguments: |
| | |
| Port - returns the Teredo port. | | Port - returns the Teredo port. |
| | |
| skipping to change at line 2030 | | skipping to change at line 2074 |
| | |
| #pragma deprecated(NotifyTeredoPortChange) | | #pragma deprecated(NotifyTeredoPortChange) |
| #pragma deprecated(GetTeredoPort) | | #pragma deprecated(GetTeredoPort) |
| | |
| #endif // TEREDO_API_NO_DEPRECATE | | #endif // TEREDO_API_NO_DEPRECATE |
| | |
| // | | // |
| // Generic (not IP-specific) interface definitions. | | // Generic (not IP-specific) interface definitions. |
| // | | // |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| NETIOAPI_API | | NETIOAPI_API |
| CancelMibChangeNotify2( | | CancelMibChangeNotify2( |
|
| __in HANDLE NotificationHandle | | _In_ HANDLE NotificationHandle |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Deregister for change notifications. | | Deregister for change notifications. |
| | |
| Arguments: | | Arguments: |
| | |
| NotificationHandle - Supplies the handle returned from a notification | | NotificationHandle - Supplies the handle returned from a notification |
| | |
| skipping to change at line 2061 | | skipping to change at line 2105 |
| | |
| Notes: | | Notes: |
| | |
| Blocks until all callback have returned. | | Blocks until all callback have returned. |
| | |
| --*/ | | --*/ |
| | |
| VOID | | VOID |
| NETIOAPI_API_ | | NETIOAPI_API_ |
| FreeMibTable( | | FreeMibTable( |
|
| __in PVOID Memory | | _In_ PVOID Memory |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Free the buffer allocated by Get*Table APIs. | | Free the buffer allocated by Get*Table APIs. |
| | |
| Arguments: | | Arguments: |
| | |
| Memory - Supplies the buffer to free. | | Memory - Supplies the buffer to free. |
| | |
| Return Value: | | Return Value: |
| | |
| None. | | None. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| CreateSortedAddressPairs( | | CreateSortedAddressPairs( |
|
| __in_opt const PSOCKADDR_IN6 SourceAddressList, | | _In_opt_ const PSOCKADDR_IN6 SourceAddressList, |
| __in ULONG SourceAddressCount, | | _In_ ULONG SourceAddressCount, |
| __in const PSOCKADDR_IN6 DestinationAddressList, | | _In_ const PSOCKADDR_IN6 DestinationAddressList, |
| __in ULONG DestinationAddressCount, | | _In_ ULONG DestinationAddressCount, |
| __in ULONG AddressSortOptions, | | _In_ ULONG AddressSortOptions, |
| __in PSOCKADDR_IN6_PAIR *SortedAddressPairList, | | _Outptr_result_buffer_(*SortedAddressPairCount) |
| __out ULONG *SortedAddressPairCount | | PSOCKADDR_IN6_PAIR *SortedAddressPairList, |
| | _Out_ ULONG *SortedAddressPairCount |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Given a list of source and destination addresses, returns a list of | | Given a list of source and destination addresses, returns a list of |
| pairs of addresses in sorted order. The list is sorted by which address | | pairs of addresses in sorted order. The list is sorted by which address |
| pair is best suited for communication between two peers. | | pair is best suited for communication between two peers. |
| | |
| The list of source addresses is optional, in which case the function | | The list of source addresses is optional, in which case the function |
| | |
| skipping to change at line 2136 | | skipping to change at line 2181 |
| SortedAddressPairList. | | SortedAddressPairList. |
| | |
| Return Value: | | Return Value: |
| | |
| ERROR_SUCCESS on success. WIN32 error code on error. | | ERROR_SUCCESS on success. WIN32 error code on error. |
| | |
| --*/ | | --*/ |
| | |
| #endif //_WS2IPDEF_ | | #endif //_WS2IPDEF_ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| | NETIOAPI_API |
| | ConvertCompartmentGuidToId( |
| | _In_ CONST GUID *CompartmentGuid, |
| | _Out_ PNET_IF_COMPARTMENT_ID CompartmentId |
| | ); |
| | /*++ |
| | |
| | Routine Description: |
| | |
| | Converts a compartment GUID to a compartment ID. |
| | |
| | Arguments: |
| | |
| | CompartmentGuid - Supplies the compartment GUID. |
| | |
| | CompartmentId - Returns the compartment ID. |
| | |
| | Return Value: |
| | |
| | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| | --*/ |
| | |
| | _IRQL_requires_max_(PASSIVE_LEVEL) |
| | _NETIOAPI_SUCCESS_ |
| | NETIOAPI_API |
| | ConvertCompartmentIdToGuid( |
| | _In_ NET_IF_COMPARTMENT_ID CompartmentId, |
| | _Out_ GUID *CompartmentGuid |
| | ); |
| | /*++ |
| | |
| | Routine Description: |
| | |
| | Converts a compartment ID to a compartment GUID. |
| | |
| | Arguments: |
| | |
| | CompartmentId - Supplies the compartment ID. |
| | |
| | CompartmentGuid - Returns the compartment GUID. |
| | |
| | Return Value: |
| | |
| | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| | --*/ |
| | |
| | _IRQL_requires_max_(PASSIVE_LEVEL) |
| | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceNameToLuidA( | | ConvertInterfaceNameToLuidA( |
|
| __in CONST CHAR *InterfaceName, | | _In_z_ CONST CHAR *InterfaceName, |
| __out NET_LUID *InterfaceLuid | | _Out_ NET_LUID *InterfaceLuid |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface Name to Luid. | | Convert an Interface Name to Luid. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceName - Supplies the interface name to be converted. | | InterfaceName - Supplies the interface name to be converted. |
| | |
| skipping to change at line 2163 | | skipping to change at line 2262 |
| InterfaceLuid - Returns the interface Luid. | | InterfaceLuid - Returns the interface Luid. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceNameToLuidW( | | ConvertInterfaceNameToLuidW( |
|
| __in CONST WCHAR *InterfaceName, | | _In_z_ CONST WCHAR *InterfaceName, |
| __out NET_LUID *InterfaceLuid | | _Out_ NET_LUID *InterfaceLuid |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface Name to Luid. | | Convert an Interface Name to Luid. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceName - Supplies the interface name to be converted. | | InterfaceName - Supplies the interface name to be converted. |
| | |
| skipping to change at line 2190 | | skipping to change at line 2289 |
| InterfaceLuid - Returns the interface Luid. | | InterfaceLuid - Returns the interface Luid. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceLuidToNameA( | | ConvertInterfaceLuidToNameA( |
|
| __in CONST NET_LUID *InterfaceLuid, | | _In_ CONST NET_LUID *InterfaceLuid, |
| __out_ecount(Length) PSTR InterfaceName, | | _Out_writes_(Length) PSTR InterfaceName, |
| __in SIZE_T Length | | _In_ SIZE_T Length |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface Luid to Name. | | Convert an Interface Luid to Name. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceLuid - Supplies the interface Luid to be converted. | | InterfaceLuid - Supplies the interface Luid to be converted. |
| | |
| skipping to change at line 2220 | | skipping to change at line 2319 |
| Lenght - Supplies the length of the InterfaceName buffer. | | Lenght - Supplies the length of the InterfaceName buffer. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceLuidToNameW( | | ConvertInterfaceLuidToNameW( |
|
| __in CONST NET_LUID *InterfaceLuid, | | _In_ CONST NET_LUID *InterfaceLuid, |
| __out_ecount(Length) PWSTR InterfaceName, | | _Out_writes_(Length) PWSTR InterfaceName, |
| __in SIZE_T Length | | _In_ SIZE_T Length |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface Luid to Name. | | Convert an Interface Luid to Name. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceLuid - Supplies the interface Luid to be converted. | | InterfaceLuid - Supplies the interface Luid to be converted. |
| | |
| skipping to change at line 2250 | | skipping to change at line 2349 |
| Length - Supplies the length of the InterfaceName buffer. | | Length - Supplies the length of the InterfaceName buffer. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceLuidToIndex( | | ConvertInterfaceLuidToIndex( |
|
| __in CONST NET_LUID *InterfaceLuid, | | _In_ CONST NET_LUID *InterfaceLuid, |
| __out PNET_IFINDEX InterfaceIndex | | _Out_ PNET_IFINDEX InterfaceIndex |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface Luid to Index. | | Convert an Interface Luid to Index. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceLuid - Supplies the interface Luid to be converted. | | InterfaceLuid - Supplies the interface Luid to be converted. |
| | |
| skipping to change at line 2277 | | skipping to change at line 2376 |
| InterfaceName - Returns the interface Index. | | InterfaceName - Returns the interface Index. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceIndexToLuid( | | ConvertInterfaceIndexToLuid( |
|
| __in NET_IFINDEX InterfaceIndex, | | _In_ NET_IFINDEX InterfaceIndex, |
| __out PNET_LUID InterfaceLuid | | _Out_ PNET_LUID InterfaceLuid |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface Index to Luid. | | Convert an Interface Index to Luid. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceName - Supplies the interface Index to be converted. | | InterfaceName - Supplies the interface Index to be converted. |
| | |
| skipping to change at line 2304 | | skipping to change at line 2403 |
| InterfaceLuid - Returns the interface Luid. | | InterfaceLuid - Returns the interface Luid. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceLuidToAlias( | | ConvertInterfaceLuidToAlias( |
|
| __in CONST NET_LUID *InterfaceLuid, | | _In_ CONST NET_LUID *InterfaceLuid, |
| __out_ecount(Length) PWSTR InterfaceAlias, | | _Out_writes_(Length) PWSTR InterfaceAlias, |
| __in SIZE_T Length | | _In_ SIZE_T Length |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface Luid to Alias. | | Convert an Interface Luid to Alias. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceLuid - Supplies the interface Luid to be converted. | | InterfaceLuid - Supplies the interface Luid to be converted. |
| | |
| skipping to change at line 2334 | | skipping to change at line 2433 |
| Length - Supplies the length of InterfaceAlias buffer. | | Length - Supplies the length of InterfaceAlias buffer. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceAliasToLuid( | | ConvertInterfaceAliasToLuid( |
|
| IN CONST WCHAR *InterfaceAlias, | | _In_z_ CONST WCHAR *InterfaceAlias, |
| OUT PNET_LUID InterfaceLuid | | _Out_ PNET_LUID InterfaceLuid |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface Alias to Luid. | | Convert an Interface Alias to Luid. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceAlias - Supplies the null terminated interface Alias. | | InterfaceAlias - Supplies the null terminated interface Alias. |
| | |
| skipping to change at line 2361 | | skipping to change at line 2460 |
| InterfaceLuid - Returns the interface Luid. | | InterfaceLuid - Returns the interface Luid. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceLuidToGuid( | | ConvertInterfaceLuidToGuid( |
|
| __in CONST NET_LUID *InterfaceLuid, | | _In_ CONST NET_LUID *InterfaceLuid, |
| __out GUID *InterfaceGuid | | _Out_ GUID *InterfaceGuid |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface Luid to Guid. | | Convert an Interface Luid to Guid. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceLuid - Supplies the interface Luid to be converted. | | InterfaceLuid - Supplies the interface Luid to be converted. |
| | |
| skipping to change at line 2388 | | skipping to change at line 2487 |
| InterfaceGuid - Returns the interface Guid. | | InterfaceGuid - Returns the interface Guid. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| __success(return==STATUS_SUCCESS) | | _NETIOAPI_SUCCESS_ |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceGuidToLuid( | | ConvertInterfaceGuidToLuid( |
|
| __in CONST GUID *InterfaceGuid, | | _In_ CONST GUID *InterfaceGuid, |
| __out PNET_LUID InterfaceLuid | | _Out_ PNET_LUID InterfaceLuid |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface Luid to Guid. | | Convert an Interface Luid to Guid. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceGuid - Supplies the interface Guid to be converted. | | InterfaceGuid - Supplies the interface Guid to be converted. |
| | |
| skipping to change at line 2418 | | skipping to change at line 2517 |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
| #define IF_NAMESIZE NDIS_IF_MAX_STRING_SIZE | | #define IF_NAMESIZE NDIS_IF_MAX_STRING_SIZE |
| | |
| NET_IFINDEX | | NET_IFINDEX |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| NETIOAPI_API_ | | NETIOAPI_API_ |
| if_nametoindex( | | if_nametoindex( |
|
| __in PCSTR InterfaceName | | _In_ PCSTR InterfaceName |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface name to Index. | | Convert an Interface name to Index. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceName - Supplies the null terminated interface name to convert. | | InterfaceName - Supplies the null terminated interface name to convert. |
| | |
| Return Value: | | Return Value: |
| | |
| Interface index on success, 0 otherwise. | | Interface index on success, 0 otherwise. |
| | |
| --*/ | | --*/ |
| | |
| PCHAR | | PCHAR |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| NETIOAPI_API_ | | NETIOAPI_API_ |
| if_indextoname( | | if_indextoname( |
|
| __in NET_IFINDEX InterfaceIndex, | | _In_ NET_IFINDEX InterfaceIndex, |
| __out_ecount(IF_NAMESIZE) PCHAR InterfaceName | | _Out_writes_(IF_NAMESIZE) PCHAR InterfaceName |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface index to Name. | | Convert an Interface index to Name. |
| | |
| Arguments: | | Arguments: |
| | |
| InterfaceIndex - Supplies the Interface index to convert. | | InterfaceIndex - Supplies the Interface index to convert. |
| | |
| skipping to change at line 2470 | | skipping to change at line 2569 |
| Interface name on success, NULL otherwise. | | Interface name on success, NULL otherwise. |
| | |
| Notes: | | Notes: |
| | |
| The length of InterfaceName buffer must be equal to or greater than | | The length of InterfaceName buffer must be equal to or greater than |
| IF_NAMESIZE. | | IF_NAMESIZE. |
| | |
| --*/ | | --*/ |
| | |
| NET_IF_COMPARTMENT_ID | | NET_IF_COMPARTMENT_ID |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| NETIOAPI_API_ | | NETIOAPI_API_ |
| GetCurrentThreadCompartmentId( | | GetCurrentThreadCompartmentId( |
| VOID | | VOID |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Get the compartment ID of current thread. | | Get the compartment ID of current thread. |
| | |
| Arguments: | | Arguments: |
| | |
| None. | | None. |
| | |
| Return Value: | | Return Value: |
| | |
| The compartment ID of current thread. | | The compartment ID of current thread. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| NETIOAPI_API | | NETIOAPI_API |
| SetCurrentThreadCompartmentId( | | SetCurrentThreadCompartmentId( |
|
| __in NET_IF_COMPARTMENT_ID CompartmentId | | _In_ NET_IF_COMPARTMENT_ID CompartmentId |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Set the compartment ID of current thread. | | Set the compartment ID of current thread. |
| | |
| Arguments: | | Arguments: |
| | |
| CompartmentId - Supplies the compartment ID to be set. | | CompartmentId - Supplies the compartment ID to be set. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
| NET_IF_COMPARTMENT_ID | | NET_IF_COMPARTMENT_ID |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| NETIOAPI_API_ | | NETIOAPI_API_ |
| GetSessionCompartmentId( | | GetSessionCompartmentId( |
|
| __in ULONG SessionId | | _In_ ULONG SessionId |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Get the compartment ID of the session. | | Get the compartment ID of the session. |
| | |
| Arguments: | | Arguments: |
| | |
| SessionId - Supplies the session ID. | | SessionId - Supplies the session ID. |
| | |
| Return Value: | | Return Value: |
| | |
| The compartment ID of the session. | | The compartment ID of the session. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| NETIOAPI_API | | NETIOAPI_API |
| SetSessionCompartmentId( | | SetSessionCompartmentId( |
|
| __in ULONG SessionId, | | _In_ ULONG SessionId, |
| __in NET_IF_COMPARTMENT_ID CompartmentId | | _In_ NET_IF_COMPARTMENT_ID CompartmentId |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Set the compartment ID of the session. | | Set the compartment ID of the session. |
| | |
| Arguments: | | Arguments: |
| | |
| SessionId - Supplies the session ID. | | SessionId - Supplies the session ID. |
| | |
| skipping to change at line 2562 | | skipping to change at line 2661 |
| CompartmentId - Supplies the compartment ID to be set. | | CompartmentId - Supplies the compartment ID to be set. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| NETIOAPI_API | | NETIOAPI_API |
| GetNetworkInformation( | | GetNetworkInformation( |
|
| __in CONST NET_IF_NETWORK_GUID *NetworkGuid, | | _In_ CONST NET_IF_NETWORK_GUID *NetworkGuid, |
| __out PNET_IF_COMPARTMENT_ID CompartmentId, | | _Out_ PNET_IF_COMPARTMENT_ID CompartmentId, |
| __out PULONG SiteId, | | _Out_ PULONG SiteId, |
| __out_ecount(Length) PWCHAR NetworkName, | | _Out_writes_(Length) PWCHAR NetworkName, |
| __in ULONG Length | | _In_ ULONG Length |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Get the network information. | | Get the network information. |
| | |
| Arguments: | | Arguments: |
| | |
| NetworkGuid - Supplies the Network GUID. | | NetworkGuid - Supplies the Network GUID. |
| | |
| skipping to change at line 2597 | | skipping to change at line 2696 |
| Length - Supplies the length of NetworkName buffer. | | Length - Supplies the length of NetworkName buffer. |
| | |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
|
| __drv_maxIRQL(PASSIVE_LEVEL) | | _IRQL_requires_max_(PASSIVE_LEVEL) |
| NETIOAPI_API | | NETIOAPI_API |
| SetNetworkInformation( | | SetNetworkInformation( |
|
| __in CONST NET_IF_NETWORK_GUID *NetworkGuid, | | _In_ CONST NET_IF_NETWORK_GUID *NetworkGuid, |
| __in NET_IF_COMPARTMENT_ID CompartmentId, | | _In_ NET_IF_COMPARTMENT_ID CompartmentId, |
| __in CONST WCHAR *NetworkName | | _In_z_ CONST WCHAR *NetworkName |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Set the Network Information. | | Set the Network Information. |
| | |
| Arguments: | | Arguments: |
| | |
| NetworkGuid - Supplies the session ID. | | NetworkGuid - Supplies the session ID. |
| | |
| skipping to change at line 2630 | | skipping to change at line 2729 |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
| #pragma warning(pop) | | #pragma warning(pop) |
| | |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertLengthToIpv4Mask( | | ConvertLengthToIpv4Mask( |
|
| __in ULONG MaskLength, | | _In_ ULONG MaskLength, |
| __out PULONG Mask | | _Out_ PULONG Mask |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Converts a prefixLength to a subnet mask. | | Converts a prefixLength to a subnet mask. |
| | |
| Arguments: | | Arguments: |
| | |
| MaskLength - Prefix Length. | | MaskLength - Prefix Length. |
| | |
| skipping to change at line 2655 | | skipping to change at line 2754 |
| Return Value: | | Return Value: |
| | |
| User-Mode: NO_ERROR on success, error code on failure. | | User-Mode: NO_ERROR on success, error code on failure. |
| | |
| Kernel-Mode: STATUS_SUCCESS on success, error code on failure. | | Kernel-Mode: STATUS_SUCCESS on success, error code on failure. |
| | |
| --*/ | | --*/ |
| | |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertIpv4MaskToLength( | | ConvertIpv4MaskToLength( |
|
| __in ULONG Mask, | | _In_ ULONG Mask, |
| __out PUINT8 MaskLength | | _Out_ PUINT8 MaskLength |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Converts a subnet mask to a prefix length. | | Converts a subnet mask to a prefix length. |
| | |
| Arguments: | | Arguments: |
| | |
| Mask - Subnet mask to use. | | Mask - Subnet mask to use. |
| | |
| skipping to change at line 2685 | | skipping to change at line 2784 |
| | |
| --*/ | | --*/ |
| | |
| // | | // |
| //4201. | | //4201. |
| // | | // |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| } | | } |
| #endif | | #endif |
| | |
|
| | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */ |
| | #pragma endregion |
| | |
| #endif // _NETIOAPI_H_. | | #endif // _NETIOAPI_H_. |
| | |
| End of changes. 144 change blocks. |
| 262 lines changed or deleted | | 364 lines changed or added |
|