| iphlpapi.h (6.0.6002.18005-Windows 6.0) | | iphlpapi.h (6.1.7601.17514-Windows 7.0) |
| | |
| skipping to change at line 58 | | skipping to change at line 58 |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // 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( |
|
| IN OUT PMIB_IFROW pIfRow | | __inout PMIB_IFROW pIfRow |
| ); | | ); |
| | |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| // // | | // // |
| // Gets the MIB-II IfTable // | | // Gets the MIB-II IfTable // |
| // // | | // // |
| ////////////////////////////////////////////////////////////////////////////// | | ////////////////////////////////////////////////////////////////////////////// |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetIfTable( | | GetIfTable( |
|
| OUT PMIB_IFTABLE pIfTable, | | __out_bcount_opt(*pdwSize) PMIB_IFTABLE pIfTable, |
| IN OUT 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 PMIB_IPADDRTABLE pIpAddrTable, | | __out_bcount_opt(*pdwSize) PMIB_IPADDRTABLE pIpAddrTable, |
| IN OUT 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 PMIB_IPNETTABLE IpNetTable, | | __out_bcount_opt(*SizePointer) PMIB_IPNETTABLE IpNetTable, |
| IN OUT 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 PMIB_IPFORWARDTABLE pIpForwardTable, | | __out_bcount_opt(*pdwSize) PMIB_IPFORWARDTABLE pIpForwardTable, |
| IN OUT 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 PMIB_TCPTABLE TcpTable, | | __out_bcount_opt(*SizePointer) PMIB_TCPTABLE TcpTable, |
| IN OUT PULONG SizePointer, | | __inout PULONG SizePointer, |
| IN BOOL Order | | __in BOOL Order |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetExtendedTcpTable( | | GetExtendedTcpTable( |
|
| OUT PVOID pTcpTable, | | __out_bcount_opt(*pdwSize) PVOID pTcpTable, |
| IN OUT PDWORD pdwSize, | | __inout PDWORD pdwSize, |
| IN BOOL bOrder, | | __in BOOL bOrder, |
| IN ULONG ulAf, | | __in ULONG ulAf, |
| IN TCP_TABLE_CLASS TableClass, | | __in TCP_TABLE_CLASS TableClass, |
| IN ULONG Reserved | | __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 PVOID pBuffer, | | __out_bcount(*pdwSize) PVOID pBuffer, |
| IN OUT PDWORD pdwSize | | __inout PDWORD pdwSize |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetUdpTable( | | GetUdpTable( |
|
| OUT PMIB_UDPTABLE UdpTable, | | __out_bcount_opt(*SizePointer) PMIB_UDPTABLE UdpTable, |
| IN OUT PULONG SizePointer, | | __inout PULONG SizePointer, |
| IN BOOL Order | | __in BOOL Order |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetExtendedUdpTable( | | GetExtendedUdpTable( |
|
| OUT PVOID pUdpTable, | | __out_bcount_opt(*pdwSize) PVOID pUdpTable, |
| IN OUT 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 PVOID pBuffer, | | __out_bcount(*pdwSize) PVOID pBuffer, |
| IN OUT PDWORD pdwSize | | __inout PDWORD pdwSize |
| ); | | ); |
| | |
|
| #if (NTDDI_VERSION >= NTDDI_LONGHORN) | | #if (NTDDI_VERSION >= NTDDI_VISTA) |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetTcpTable2( | | GetTcpTable2( |
|
| OUT PMIB_TCPTABLE2 TcpTable, | | __out_bcount_opt(*SizePointer) PMIB_TCPTABLE2 TcpTable, |
| IN OUT PULONG SizePointer, | | __inout PULONG SizePointer, |
| IN BOOL Order | | __in BOOL Order |
| ); | | ); |
|
| #endif // (NTDDI_VERSION >= NTDDI_LONGHORN) | | #endif // (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
|
| #if (NTDDI_VERSION < NTDDI_LONGHORN) | | #if (NTDDI_VERSION < NTDDI_VISTA) |
| // | | // |
| // Deprecated APIs, Added for documentation. | | // Deprecated APIs, Added for documentation. |
| // | | // |
| | |
| DWORD | | DWORD |
| AllocateAndGetTcpExTableFromStack( | | AllocateAndGetTcpExTableFromStack( |
|
| OUT PVOID *ppTcpTable, | | __deref_out 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( |
|
| OUT PVOID *ppUdpTable, | | __deref_out 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_LONGHORN) | | #endif // (NTDDI_VERSION < NTDDI_VISTA) |
| | |
| #ifdef _WS2IPDEF_ | | #ifdef _WS2IPDEF_ |
| // | | // |
| // The following definitions require Winsock2. | | // The following definitions require Winsock2. |
| // | | // |
| | |
|
| #if (NTDDI_VERSION >= NTDDI_LONGHORN) | | #if (NTDDI_VERSION >= NTDDI_VISTA) |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetTcp6Table( | | GetTcp6Table( |
|
| OUT PMIB_TCP6TABLE TcpTable, | | __out_bcount(*SizePointer) PMIB_TCP6TABLE TcpTable, |
| IN OUT PULONG SizePointer, | | __inout PULONG SizePointer, |
| IN BOOL Order | | __in BOOL Order |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetTcp6Table2( | | GetTcp6Table2( |
|
| OUT PMIB_TCP6TABLE2 TcpTable, | | __out_bcount(*SizePointer) PMIB_TCP6TABLE2 TcpTable, |
| IN OUT PULONG SizePointer, | | __inout PULONG SizePointer, |
| IN BOOL Order | | __in BOOL Order |
| ); | | ); |
| | |
|
| #endif // (NTDDI_VERSION >= NTDDI_LONGHORN) | | #endif // (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| #ifdef WINAPI | | #ifdef WINAPI |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetPerTcpConnectionEStats( | | GetPerTcpConnectionEStats( |
|
| PMIB_TCPROW Row, | | __in PMIB_TCPROW Row, |
| TCP_ESTATS_TYPE EstatsType, | | __in TCP_ESTATS_TYPE EstatsType, |
| __out_bcount_opt(RwSize) PUCHAR Rw, | | __out_bcount_opt(RwSize) PUCHAR Rw, |
|
| ULONG RwVersion, | | __in ULONG RwVersion, |
| ULONG RwSize, | | __in ULONG RwSize, |
| __out_bcount_opt(RosSize) PUCHAR Ros, | | __out_bcount_opt(RosSize) PUCHAR Ros, |
|
| ULONG RosVersion, | | __in ULONG RosVersion, |
| ULONG RosSize, | | __in ULONG RosSize, |
| __out_bcount_opt(RodSize) PUCHAR Rod, | | __out_bcount_opt(RodSize) PUCHAR Rod, |
|
| ULONG RodVersion, | | __in ULONG RodVersion, |
| ULONG RodSize | | __in ULONG RodSize |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| SetPerTcpConnectionEStats( | | SetPerTcpConnectionEStats( |
|
| PMIB_TCPROW Row, | | __in PMIB_TCPROW Row, |
| TCP_ESTATS_TYPE EstatsType, | | __in TCP_ESTATS_TYPE EstatsType, |
| __in_bcount(RwSize) PUCHAR Rw, | | __in_bcount(RwSize) PUCHAR Rw, |
|
| ULONG RwVersion, | | __in ULONG RwVersion, |
| ULONG RwSize, | | __in ULONG RwSize, |
| ULONG Offset | | __in ULONG Offset |
| ); | | ); |
| | |
| #ifdef _WS2IPDEF_ | | #ifdef _WS2IPDEF_ |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetPerTcp6ConnectionEStats( | | GetPerTcp6ConnectionEStats( |
|
| PMIB_TCP6ROW Row, | | __in PMIB_TCP6ROW Row, |
| TCP_ESTATS_TYPE EstatsType, | | __in TCP_ESTATS_TYPE EstatsType, |
| __out_bcount_opt(RwSize) PUCHAR Rw, | | __out_bcount_opt(RwSize) PUCHAR Rw, |
|
| ULONG RwVersion, | | __in ULONG RwVersion, |
| ULONG RwSize, | | __in ULONG RwSize, |
| __out_bcount_opt(RosSize) PUCHAR Ros, | | __out_bcount_opt(RosSize) PUCHAR Ros, |
|
| ULONG RosVersion, | | __in ULONG RosVersion, |
| ULONG RosSize, | | __in ULONG RosSize, |
| __out_bcount_opt(RodSize) PUCHAR Rod, | | __out_bcount_opt(RodSize) PUCHAR Rod, |
|
| ULONG RodVersion, | | __in ULONG RodVersion, |
| ULONG RodSize | | __in ULONG RodSize |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| SetPerTcp6ConnectionEStats( | | SetPerTcp6ConnectionEStats( |
|
| PMIB_TCP6ROW Row, | | __in PMIB_TCP6ROW Row, |
| TCP_ESTATS_TYPE EstatsType, | | __in TCP_ESTATS_TYPE EstatsType, |
| __in_bcount(RwSize) PUCHAR Rw, | | __in_bcount(RwSize) PUCHAR Rw, |
|
| ULONG RwVersion, | | __in ULONG RwVersion, |
| ULONG RwSize, | | __in ULONG RwSize, |
| 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 PVOID pBuffer, | | __out_bcount(*pdwSize) PVOID pBuffer, |
| IN OUT PDWORD pdwSize | | __inout PDWORD pdwSize |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetUdp6Table( | | GetUdp6Table( |
|
| OUT PMIB_UDP6TABLE Udp6Table, | | __out_bcount(*SizePointer) PMIB_UDP6TABLE Udp6Table, |
| IN OUT 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 PVOID pBuffer, | | __out_bcount(*pdwSize) PVOID pBuffer, |
| IN OUT 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 PVOID pBuffer, | | __out_bcount(*pdwSize) PVOID pBuffer, |
| IN OUT 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 |
|
| GetIpStatisticsEx( | | GetIcmpStatistics( |
| OUT PMIB_IPSTATS Statistics, | | __out PMIB_ICMP Statistics |
| IN ULONG Family | | |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
|
| SetIpStatisticsEx( | | GetTcpStatistics( |
| IN PMIB_IPSTATS Statistics, | | __out PMIB_TCPSTATS Statistics |
| IN ULONG Family | | |
| ); | | ); |
| | |
|
| #endif | | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
|
| GetIcmpStatistics( | | GetUdpStatistics( |
| OUT PMIB_ICMP Statistics | | __out PMIB_UDPSTATS Stats |
| ); | | ); |
|
| | #endif |
| | |
|
| #if (NTDDI_VERSION >= NTDDI_XPSP1) | | #if (NTDDI_VERSION >= NTDDI_XP) |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
|
| GetIcmpStatisticsEx( | | GetIpStatisticsEx( |
| OUT PMIB_ICMP_EX Statistics, | | __out PMIB_IPSTATS Statistics, |
| IN ULONG Family | | __in ULONG Family |
| ); | | ); |
|
| #endif | | |
| | |
|
| #if (NTDDI_VERSION >= NTDDI_WIN2K) | | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
|
| GetTcpStatistics( | | SetIpStatisticsEx( |
| OUT PMIB_TCPSTATS Statistics | | __in PMIB_IPSTATS Statistics, |
| | __in ULONG Family |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
|
| GetTcpStatisticsEx( | | GetIcmpStatisticsEx( |
| OUT PMIB_TCPSTATS Statistics, | | __out PMIB_ICMP_EX Statistics, |
| IN ULONG Family | | __in ULONG Family |
| ); | | ); |
|
| #endif | | |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
|
| GetUdpStatistics( | | GetTcpStatisticsEx( |
| OUT PMIB_UDPSTATS Stats | | __out PMIB_TCPSTATS Statistics, |
| | __in ULONG Family |
| ); | | ); |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetUdpStatisticsEx( | | GetUdpStatisticsEx( |
|
| OUT PMIB_UDPSTATS Statistics, | | __out PMIB_UDPSTATS Statistics, |
| IN ULONG Family | | __in ULONG Family |
| ); | | ); |
|
| | #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( |
|
| 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( |
|
| IN PIP_INTERFACE_INFO pIfTable, | | __out_bcount_opt(*dwOutBufLen) PIP_INTERFACE_INFO pIfTable, |
| OUT PULONG dwOutBufLen | | __inout PULONG dwOutBufLen |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
|
| GetUniDirectionalAdapterInfo(OUT PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo, | | GetUniDirectionalAdapterInfo( |
| OUT PULONG dwOutBufLen | | __out_bcount_opt(*dwOutBufLen) PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS pIPIfInfo, |
| ); | | __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( |
|
| OUT IP_INTERFACE_NAME_INFO **ppTable, | | __deref_out 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 DWORD dwSourceAddr, OPTIONAL | | __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 IN LPWSTR AdapterName, | | __in LPWSTR AdapterName, |
| __inout OUT PULONG IfIndex | | __inout PULONG IfIndex |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| AddIPAddress( | | AddIPAddress( |
|
| IPAddr Address, | | __in IPAddr Address, |
| IPMask IpMask, | | __in IPMask IpMask, |
| DWORD IfIndex, | | __in DWORD IfIndex, |
| PULONG NTEContext, | | __out PULONG NTEContext, |
| PULONG NTEInstance | | __out PULONG NTEInstance |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| DeleteIPAddress( | | DeleteIPAddress( |
|
| ULONG NTEContext | | __in ULONG NTEContext |
| ); | | ); |
| | |
| #if (NTDDI_VERSION >= NTDDI_WIN2KSP1) | | #if (NTDDI_VERSION >= NTDDI_WIN2KSP1) |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetNetworkParams( | | GetNetworkParams( |
|
| PFIXED_INFO pFixedInfo, PULONG pOutBufLen | | __out_bcount_opt(*pOutBufLen) PFIXED_INFO pFixedInfo, |
| | __inout PULONG pOutBufLen |
| ); | | ); |
| #endif | | #endif |
| | |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| GetAdaptersInfo( | | GetAdaptersInfo( |
|
| IN PIP_ADAPTER_INFO AdapterInfo, | | __out_bcount_opt(*SizePointer) PIP_ADAPTER_INFO AdapterInfo, |
| IN OUT 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, |
| IN PVOID Reserved, | | __reserved PVOID Reserved, |
| __out_bcount_opt(*SizePointer) PIP_ADAPTER_ADDRESSES AdapterAddresses, | | __out_bcount_opt(*SizePointer) PIP_ADAPTER_ADDRESSES AdapterAddresses, |
|
| IN OUT PULONG SizePointer | | __inout PULONG SizePointer |
| ); | | ); |
| | |
| #endif | | #endif |
| | |
| #if (NTDDI_VERSION >= NTDDI_WIN2KSP1) | | #if (NTDDI_VERSION >= NTDDI_WIN2KSP1) |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetPerAdapterInfo( | | GetPerAdapterInfo( |
|
| ULONG IfIndex, PIP_PER_ADAPTER_INFO pPerAdapterInfo, PULONG pOutBufLen | | __in ULONG IfIndex, |
| | __out_bcount_opt(*pOutBufLen) PIP_PER_ADAPTER_INFO pPerAdapterInfo, |
| | __inout PULONG pOutBufLen |
| ); | | ); |
| #endif | | #endif |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| IpReleaseAddress( | | IpReleaseAddress( |
|
| PIP_ADAPTER_INDEX_MAP AdapterInfo | | __in PIP_ADAPTER_INDEX_MAP AdapterInfo |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| IpRenewAddress( | | IpRenewAddress( |
|
| PIP_ADAPTER_INDEX_MAP AdapterInfo | | __in PIP_ADAPTER_INDEX_MAP AdapterInfo |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| SendARP( | | SendARP( |
|
| IPAddr DestIP, | | __in IPAddr DestIP, |
| IPAddr SrcIP, | | __in IPAddr SrcIP, |
| PVOID pMacAddr, | | __out_bcount(*PhyAddrLen) PVOID pMacAddr, |
| PULONG PhyAddrLen | | __inout PULONG PhyAddrLen |
| ); | | ); |
| | |
| BOOL | | BOOL |
| WINAPI | | WINAPI |
| GetRTTAndHopCount( | | GetRTTAndHopCount( |
|
| IPAddr DestIpAddress, | | __in IPAddr DestIpAddress, |
| PULONG HopCount, | | __out PULONG HopCount, |
| ULONG MaxHops, | | __in ULONG MaxHops, |
| PULONG RTT | | __out PULONG RTT |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| GetFriendlyIfIndex( | | GetFriendlyIfIndex( |
|
| DWORD IfIndex | | __in DWORD IfIndex |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| EnableRouter( | | EnableRouter( |
|
| HANDLE* pHandle, | | __out HANDLE* pHandle, |
| OVERLAPPED* pOverlapped | | __out OVERLAPPED* pOverlapped |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| UnenableRouter( | | UnenableRouter( |
|
| OVERLAPPED* pOverlapped, | | __in OVERLAPPED* pOverlapped, |
| LPDWORD lpdwEnableCount OPTIONAL | | __out_opt LPDWORD lpdwEnableCount |
| ); | | ); |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| DisableMediaSense( | | DisableMediaSense( |
|
| HANDLE *pHandle, | | __out HANDLE *pHandle, |
| OVERLAPPED *pOverLapped | | __in OVERLAPPED *pOverLapped |
| ); | | ); |
| | |
| DWORD | | DWORD |
| WINAPI | | WINAPI |
| RestoreMediaSense( | | RestoreMediaSense( |
|
| OVERLAPPED* pOverlapped, | | __in OVERLAPPED* pOverlapped, |
| LPDWORD lpdwEnableCount OPTIONAL | | __out_opt LPDWORD lpdwEnableCount |
| ); | | ); |
| | |
|
| #if (NTDDI_VERSION >= NTDDI_LONGHORN) | | #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_ecount_opt(*Size + 1) PWSTR Buffer, |
| __inout PDWORD Size | | __inout PDWORD Size |
| ); | | ); |
| | |
|
| #if (NTDDI_VERSION >= NTDDI_LONGHORN) | | #if (NTDDI_VERSION >= NTDDI_VISTA) |
| #ifdef _WS2DEF_ | | #ifdef _WS2DEF_ |
| ULONG | | ULONG |
| WINAPI | | WINAPI |
| ResolveNeighbor( | | ResolveNeighbor( |
|
| IN SOCKADDR *NetworkAddress, | | __in SOCKADDR *NetworkAddress, |
| OUT PVOID PhysicalAddress, | | __out_bcount(*PhysicalAddressLength) PVOID PhysicalAddress, |
| IN OUT 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 958 | | skipping to change at line 960 |
| 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 CONST WCHAR* NetworkString, |
| IN DWORD Types, | | __in DWORD Types, |
| OUT PNET_ADDRESS_INFO AddressInfo OPTIONAL, | | __out_opt PNET_ADDRESS_INFO AddressInfo, |
| OUT USHORT* PortNumber OPTIONAL, | | __out_opt USHORT* PortNumber, |
| OUT BYTE* PrefixLength OPTIONAL | | __out_opt BYTE* PrefixLength |
| ); | | ); |
| | |
| #endif | | #endif |
| | |
|
| | #endif // (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| | #if (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| #include <netioapi.h> | | #include <netioapi.h> |
| | |
|
| #endif // (NTDDI_VERSION >= NTDDI_LONGHORN) | | #endif // (NTDDI_VERSION >= NTDDI_VISTA) |
| | |
| #ifdef __cplusplus | | #ifdef __cplusplus |
| } | | } |
| #endif | | #endif |
| | |
| #endif //__IPHLPAPI_H__ | | #endif //__IPHLPAPI_H__ |
| | |
| End of changes. 107 change blocks. |
| 235 lines changed or deleted | | 242 lines changed or added |
|
| netioapi.h (6.0.6002.18005-Windows 6.0) | | netioapi.h (6.1.7601.17514-Windows 7.0) |
| | |
| skipping to change at line 205 | | skipping to change at line 205 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIfEntry2( | | GetIfEntry2( |
|
| IN OUT 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 236 | | skipping to change at line 238 |
| | |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIfTable2( | | GetIfTable2( |
|
| OUT PMIB_IF_TABLE2 *Table | | __deref_out 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 268 | | skipping to change at line 272 |
| | |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIfTable2Ex( | | GetIfTable2Ex( |
|
| IN MIB_IF_TABLE_LEVEL Level, | | __in MIB_IF_TABLE_LEVEL Level, |
| OUT PMIB_IF_TABLE2 *Table | | __deref_out 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 396 | | skipping to change at line 402 |
| MIB_IFSTACK_ROW Table[ANY_SIZE]; | | MIB_IFSTACK_ROW Table[ANY_SIZE]; |
| } 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 |
|
| (*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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIfStackTable( | | GetIfStackTable( |
|
| OUT PMIB_IFSTACK_TABLE *Table | | __deref_out PMIB_IFSTACK_TABLE *Table |
| ); | | ); |
| | |
|
| | __drv_maxIRQL(PASSIVE_LEVEL) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetInvertedIfStackTable( | | GetInvertedIfStackTable( |
|
| OUT PMIB_INVERTEDIFSTACK_TABLE *Table | | __deref_out PMIB_INVERTEDIFSTACK_TABLE *Table |
| ); | | ); |
| | |
|
| | __drv_maxIRQL(PASSIVE_LEVEL) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpInterfaceEntry( | | GetIpInterfaceEntry( |
|
| IN OUT 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 444 | | skipping to change at line 456 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpInterfaceTable( | | GetIpInterfaceTable( |
|
| IN ADDRESS_FAMILY Family, | | __in ADDRESS_FAMILY Family, |
| OUT PMIB_IPINTERFACE_TABLE *Table | | __deref_out 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 481 | | skipping to change at line 495 |
| | |
| 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. |
| | |
| --*/ | | --*/ |
| | |
| VOID | | VOID |
|
| | __drv_maxIRQL(PASSIVE_LEVEL) |
| NETIOAPI_API_ | | NETIOAPI_API_ |
| InitializeIpInterfaceEntry( | | InitializeIpInterfaceEntry( |
|
| IN OUT 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 507 | | skipping to change at line 522 |
| 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) |
| | __success(return==STATUS_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 PVOID CallerContext, |
| IN BOOLEAN InitialNotification, | | __in BOOLEAN InitialNotification, |
| IN OUT HANDLE *NotificationHandle | | __inout OUT 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 556 | | skipping to change at line 573 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| SetIpInterfaceEntry( | | SetIpInterfaceEntry( |
|
| IN OUT 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 629 | | skipping to change at line 648 |
| LARGE_INTEGER CreationTimeStamp; | | LARGE_INTEGER CreationTimeStamp; |
| } 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 |
|
| (*PUNICAST_IPADDRESS_CHANGE_CALLBACK) ( | | (NETIOAPI_API_ *PUNICAST_IPADDRESS_CHANGE_CALLBACK) ( |
| IN PVOID CallerContext, | | __in PVOID CallerContext, |
| IN PMIB_UNICASTIPADDRESS_ROW Row OPTIONAL, | | __in_opt PMIB_UNICASTIPADDRESS_ROW Row, |
| IN MIB_NOTIFICATION_TYPE NotificationType | | __in MIB_NOTIFICATION_TYPE NotificationType |
| ); | | ); |
| | |
|
| | __drv_maxIRQL(PASSIVE_LEVEL) |
| | __success(return==STATUS_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 668 | | skipping to change at line 689 |
| 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) |
| | __success(return==STATUS_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 696 | | skipping to change at line 719 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetUnicastIpAddressEntry( | | GetUnicastIpAddressEntry( |
|
| IN OUT 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 727 | | skipping to change at line 752 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetUnicastIpAddressTable( | | GetUnicastIpAddressTable( |
|
| IN ADDRESS_FAMILY Family, | | __in ADDRESS_FAMILY Family, |
| OUT PMIB_UNICASTIPADDRESS_TABLE *Table | | __deref_out 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 765 | | skipping to change at line 792 |
| | |
| 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. |
| | |
| --*/ | | --*/ |
| | |
| 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 793 | | skipping to change at line 821 |
| | |
| 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) |
| | __success(return==STATUS_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 PVOID CallerContext, |
| IN BOOLEAN InitialNotification, | | __in BOOLEAN InitialNotification, |
| IN OUT 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 844 | | skipping to change at line 874 |
| 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. |
| | |
| --*/ | | --*/ |
| | |
| typedef | | typedef |
| VOID | | VOID |
|
| (*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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| NotifyStableUnicastIpAddressTable( | | NotifyStableUnicastIpAddressTable( |
|
| IN ADDRESS_FAMILY Family, | | __in ADDRESS_FAMILY Family, |
| IN OUT PMIB_UNICASTIPADDRESS_TABLE* Table, | | __deref_out PMIB_UNICASTIPADDRESS_TABLE* Table, |
| IN PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, | | __in PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, |
| IN PVOID CallerContext, | | __in PVOID CallerContext, |
| IN OUT HANDLE *NotificationHandle | | __inout HANDLE *NotificationHandle |
| ); | | ); |
| | |
|
| | __drv_maxIRQL(PASSIVE_LEVEL) |
| | __success(return==STATUS_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 914 | | skipping to change at line 948 |
| // 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) |
| | __success(return==STATUS_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 942 | | skipping to change at line 978 |
| 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) |
| | __success(return==STATUS_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 970 | | skipping to change at line 1008 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetAnycastIpAddressEntry( | | GetAnycastIpAddressEntry( |
|
| IN OUT 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 1001 | | skipping to change at line 1041 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetAnycastIpAddressTable( | | GetAnycastIpAddressTable( |
|
| IN ADDRESS_FAMILY Family, | | __in ADDRESS_FAMILY Family, |
| OUT PMIB_ANYCASTIPADDRESS_TABLE *Table | | __deref_out 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 1060 | | skipping to change at line 1102 |
| // 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetMulticastIpAddressEntry( | | GetMulticastIpAddressEntry( |
|
| IN OUT 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 1091 | | skipping to change at line 1135 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetMulticastIpAddressTable( | | GetMulticastIpAddressTable( |
|
| IN ADDRESS_FAMILY Family, | | __in ADDRESS_FAMILY Family, |
| OUT PMIB_MULTICASTIPADDRESS_TABLE *Table | | __deref_out 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 1174 | | skipping to change at line 1220 |
| NL_ROUTE_ORIGIN Origin; | | NL_ROUTE_ORIGIN Origin; |
| } 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 |
|
| (*PIPFORWARD_CHANGE_CALLBACK) ( | | (NETIOAPI_API_ *PIPFORWARD_CHANGE_CALLBACK) ( |
| IN PVOID CallerContext, | | __in PVOID CallerContext, |
| IN PMIB_IPFORWARD_ROW2 Row OPTIONAL, | | __in_opt PMIB_IPFORWARD_ROW2 Row, |
| IN MIB_NOTIFICATION_TYPE NotificationType | | __in MIB_NOTIFICATION_TYPE NotificationType |
| ); | | ); |
| | |
|
| | __drv_maxIRQL(PASSIVE_LEVEL) |
| | __success(return==STATUS_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 1214 | | skipping to change at line 1262 |
| 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) |
| | __success(return==STATUS_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 1243 | | skipping to change at line 1293 |
| | |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetBestRoute2( | | GetBestRoute2( |
|
| IN NET_LUID *InterfaceLuid OPTIONAL, | | __in_opt NET_LUID *InterfaceLuid, |
| IN NET_IFINDEX InterfaceIndex, | | __in NET_IFINDEX InterfaceIndex, |
| CONST IN SOCKADDR_INET *SourceAddress, | | __in_opt CONST SOCKADDR_INET *SourceAddress, |
| CONST IN 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 1291 | | skipping to change at line 1343 |
| | |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpForwardEntry2( | | GetIpForwardEntry2( |
|
| IN OUT 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 1324 | | skipping to change at line 1378 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpForwardTable2( | | GetIpForwardTable2( |
|
| IN ADDRESS_FAMILY Family, | | __in ADDRESS_FAMILY Family, |
| OUT PMIB_IPFORWARD_TABLE2 *Table | | __deref_out 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 1361 | | skipping to change at line 1417 |
| | |
| 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. |
| | |
| --*/ | | --*/ |
| | |
| 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 1387 | | skipping to change at line 1444 |
| 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) |
| | __success(return==STATUS_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, |
| IN OUT 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 1436 | | skipping to change at line 1495 |
| 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) |
| | __success(return==STATUS_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 1525 | | skipping to change at line 1586 |
| 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) |
| | __success(return==STATUS_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 1553 | | skipping to change at line 1616 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpPathEntry( | | GetIpPathEntry( |
|
| IN OUT 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 1584 | | skipping to change at line 1649 |
| | |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpPathTable( | | GetIpPathTable( |
|
| IN ADDRESS_FAMILY Family, | | __in ADDRESS_FAMILY Family, |
| OUT PMIB_IPPATH_TABLE *Table | | __deref_out 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 1662 | | skipping to change at line 1729 |
| 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) |
| | __success(return==STATUS_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 1691 | | skipping to change at line 1760 |
| | |
| 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) |
| | __success(return==STATUS_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 1719 | | skipping to change at line 1790 |
| 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) |
| | __success(return==STATUS_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 1752 | | skipping to change at line 1825 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpNetEntry2( | | GetIpNetEntry2( |
|
| IN OUT 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 1783 | | skipping to change at line 1858 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| GetIpNetTable2( | | GetIpNetTable2( |
|
| IN ADDRESS_FAMILY Family, | | __in ADDRESS_FAMILY Family, |
| OUT PMIB_IPNET_TABLE2 *Table | | __deref_out 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 1819 | | skipping to change at line 1896 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| ResolveIpNetEntry2( | | ResolveIpNetEntry2( |
|
| IN OUT PMIB_IPNET_ROW2 Row, | | __inout PMIB_IPNET_ROW2 Row, |
| IN CONST SOCKADDR_INET *SourceAddress OPTIONAL | | __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 1857 | | skipping to change at line 1936 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| SetIpNetEntry2( | | SetIpNetEntry2( |
|
| IN OUT 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 1893 | | skipping to change at line 1974 |
| | |
| --*/ | | --*/ |
| | |
| // | | // |
| // Teredo APIs. | | // Teredo APIs. |
| // | | // |
| #define MIB_INVALID_TEREDO_PORT_NUMBER 0 | | #define MIB_INVALID_TEREDO_PORT_NUMBER 0 |
| | |
| typedef | | typedef |
| VOID | | VOID |
|
| (*PTEREDO_PORT_CHANGE_CALLBACK) ( | | (NETIOAPI_API_ *PTEREDO_PORT_CHANGE_CALLBACK) ( |
| IN PVOID CallerContext, | | __in PVOID CallerContext, |
| IN USHORT Port, | | __in USHORT Port, |
| IN MIB_NOTIFICATION_TYPE NotificationType | | __inout MIB_NOTIFICATION_TYPE NotificationType |
| ); | | ); |
| | |
|
| | __drv_maxIRQL(PASSIVE_LEVEL) |
| | __success(return==STATUS_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, |
| IN OUT HANDLE *NotificationHandle | | __inout HANDLE *NotificationHandle |
| ); | | ); |
| | |
|
| | __drv_maxIRQL(PASSIVE_LEVEL) |
| | __success(return==STATUS_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. |
| | |
| 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. |
| | |
| --*/ | | --*/ |
| | |
|
| | #ifndef TEREDO_API_NO_DEPRECATE |
| | |
| | // |
| | // Deprecate all of the unsafe functions to generate compiletime errors. |
| | // Use the following routines instead : FwpmSystemPortsGet |
| | // |
| | |
| | #pragma deprecated(NotifyTeredoPortChange) |
| | #pragma deprecated(GetTeredoPort) |
| | |
| | #endif // TEREDO_API_NO_DEPRECATE |
| | |
| // | | // |
| // Generic (not IP-specific) interface definitions. | | // Generic (not IP-specific) interface definitions. |
| // | | // |
| | |
|
| | __drv_maxIRQL(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 1963 | | skipping to change at line 2061 |
| | |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| CreateSortedAddressPairs( | | CreateSortedAddressPairs( |
|
| IN const PSOCKADDR_IN6 SourceAddressList OPTIONAL, | | __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, |
| OUT PSOCKADDR_IN6_PAIR *SortedAddressPairList, | | __in PSOCKADDR_IN6_PAIR *SortedAddressPairList, |
| OUT ULONG *SortedAddressPairCount | | __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 2036 | | skipping to change at line 2136 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceNameToLuidA( | | ConvertInterfaceNameToLuidA( |
|
| IN CONST CHAR *InterfaceName, | | __in 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 2061 | | skipping to change at line 2163 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceNameToLuidW( | | ConvertInterfaceNameToLuidW( |
|
| IN CONST WCHAR *InterfaceName, | | __in 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 2086 | | skipping to change at line 2190 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceLuidToNameA( | | ConvertInterfaceLuidToNameA( |
|
| IN CONST NET_LUID *InterfaceLuid, | | __in CONST NET_LUID *InterfaceLuid, |
| __out_ecount(Length) PSTR InterfaceName, | | __out_ecount(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: |
| | |
| skipping to change at line 2114 | | skipping to change at line 2220 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceLuidToNameW( | | ConvertInterfaceLuidToNameW( |
|
| IN CONST NET_LUID *InterfaceLuid, | | __in CONST NET_LUID *InterfaceLuid, |
| __out_ecount(Length) PWSTR InterfaceName, | | __out_ecount(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: |
| | |
| skipping to change at line 2142 | | skipping to change at line 2250 |
| 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) |
| | __success(return==STATUS_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 2167 | | skipping to change at line 2277 |
| 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) |
| | __success(return==STATUS_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 2192 | | skipping to change at line 2304 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceLuidToAlias( | | ConvertInterfaceLuidToAlias( |
|
| IN CONST NET_LUID *InterfaceLuid, | | __in CONST NET_LUID *InterfaceLuid, |
| __out_ecount(Length) PWSTR InterfaceAlias, | | __out_ecount(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: |
| | |
| skipping to change at line 2220 | | skipping to change at line 2334 |
| 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) |
| | __success(return==STATUS_SUCCESS) |
| NETIOAPI_API | | NETIOAPI_API |
| ConvertInterfaceAliasToLuid( | | ConvertInterfaceAliasToLuid( |
| IN CONST WCHAR *InterfaceAlias, | | IN 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. |
| | |
| skipping to change at line 2245 | | skipping to change at line 2361 |
| 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) |
| | __success(return==STATUS_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 2270 | | skipping to change at line 2388 |
| 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) |
| | __success(return==STATUS_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 2298 | | skipping to change at line 2418 |
| | |
| 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) |
| 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. |
| | |
| | |
| skipping to change at line 2319 | | skipping to change at line 2440 |
| | |
| 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) |
| NETIOAPI_API_ | | NETIOAPI_API_ |
| if_indextoname( | | if_indextoname( |
| __in NET_IFINDEX InterfaceIndex, | | __in NET_IFINDEX InterfaceIndex, |
| __out_ecount(IF_NAMESIZE) PCHAR InterfaceName | | __out_ecount(IF_NAMESIZE) PCHAR InterfaceName |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| Convert an Interface index to Name. | | Convert an Interface index to Name. |
| | |
| skipping to change at line 2348 | | skipping to change at line 2470 |
| 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) |
| 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) |
| 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) |
| 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) |
| 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 2436 | | skipping to change at line 2562 |
| 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) |
| 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_ecount(Length) PWCHAR NetworkName, |
| __in ULONG Length | | __in ULONG Length |
| ); | | ); |
| /*++ | | /*++ |
| | |
| | |
| skipping to change at line 2470 | | skipping to change at line 2597 |
| 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) |
| 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 CONST WCHAR *NetworkName |
| ); | | ); |
| /*++ | | /*++ |
| | |
| Routine Description: | | Routine Description: |
| | |
| | |
| skipping to change at line 2502 | | skipping to change at line 2630 |
| 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 2527 | | skipping to change at line 2655 |
| 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. |
| | |
| End of changes. 131 change blocks. |
| 130 lines changed or deleted | | 258 lines changed or added |
|