Headers diff for iphlpapi.dll between 6.0.6002.18005-Windows 6.0 and 6.1.7601.17514-Windows 7.0 versions



 icmpapi.h (6.0.6002.18005-Windows 6.0)   icmpapi.h (6.1.7601.17514-Windows 7.0) 
skipping to change at line 118 skipping to change at line 118
// Return Value: // Return Value:
// //
// TRUE if the handle was closed successfully, otherwise FALSE. Extended // TRUE if the handle was closed successfully, otherwise FALSE. Extended
// error information is available by calling GetLastError(). // error information is available by calling GetLastError().
// //
//-- //--
BOOL BOOL
WINAPI WINAPI
IcmpCloseHandle( IcmpCloseHandle(
HANDLE IcmpHandle __in HANDLE IcmpHandle
); );
#if (NTDDI_VERSION >= NTDDI_WINXP)
//++ //++
// //
// Routine Name: // Routine Name:
// //
// IcmpSendEcho // IcmpSendEcho
// //
// Routine Description: // Routine Description:
// //
// Sends an ICMP Echo request and returns any replies. The // Sends an ICMP Echo request and returns any replies. The
// call returns when the timeout has expired or the reply buffer // call returns when the timeout has expired or the reply buffer
skipping to change at line 173 skipping to change at line 172
// Returns the number of ICMP_ECHO_REPLY structures stored in ReplyBuffer. // Returns the number of ICMP_ECHO_REPLY structures stored in ReplyBuffer.
// The status of each reply is contained in the structure. If the return // The status of each reply is contained in the structure. If the return
// value is zero, extended error information is available via // value is zero, extended error information is available via
// GetLastError(). // GetLastError().
// //
//-- //--
DWORD DWORD
WINAPI WINAPI
IcmpSendEcho( IcmpSendEcho(
HANDLE IcmpHandle, __in HANDLE IcmpHandle,
IPAddr DestinationAddress, __in IPAddr DestinationAddress,
LPVOID RequestData, __in_bcount(RequestSize) LPVOID RequestData,
WORD RequestSize, __in WORD RequestSize,
PIP_OPTION_INFORMATION RequestOptions, __in_opt PIP_OPTION_INFORMATION RequestOptions,
LPVOID ReplyBuffer, __out_bcount(ReplySize) LPVOID ReplyBuffer,
DWORD ReplySize, __in DWORD ReplySize,
DWORD Timeout __in DWORD Timeout
); );
//++ //++
// //
// Routine Description: // Routine Description:
// //
// Sends an ICMP Echo request and the call returns either immediately // Sends an ICMP Echo request and the call returns either immediately
// (if Event or ApcRoutine is NonNULL) or returns after the specified // (if Event or ApcRoutine is NonNULL) or returns after the specified
// timeout. The ReplyBuffer contains the ICMP responses, if any. // timeout. The ReplyBuffer contains the ICMP responses, if any.
// //
skipping to change at line 253 skipping to change at line 252
// is provided for this purpose. // is provided for this purpose.
// //
// On non-NT platforms, // On non-NT platforms,
// Event, ApcRoutine and ApcContext are IGNORED. // Event, ApcRoutine and ApcContext are IGNORED.
// //
//-- //--
DWORD DWORD
WINAPI WINAPI
IcmpSendEcho2( IcmpSendEcho2(
HANDLE IcmpHandle, __in HANDLE IcmpHandle,
HANDLE Event, __in_opt HANDLE Event,
#ifdef PIO_APC_ROUTINE_DEFINED #ifdef PIO_APC_ROUTINE_DEFINED
PIO_APC_ROUTINE ApcRoutine, __in_opt PIO_APC_ROUTINE ApcRoutine,
#else #else
FARPROC ApcRoutine, __in_opt FARPROC ApcRoutine,
#endif #endif
PVOID ApcContext, __in_opt PVOID ApcContext,
IPAddr DestinationAddress, __in IPAddr DestinationAddress,
LPVOID RequestData, __in_bcount(RequestSize) LPVOID RequestData,
WORD RequestSize, __in WORD RequestSize,
PIP_OPTION_INFORMATION RequestOptions, __in_opt PIP_OPTION_INFORMATION RequestOptions,
LPVOID ReplyBuffer, __out_bcount(ReplySize) LPVOID ReplyBuffer,
DWORD ReplySize, __in DWORD ReplySize,
DWORD Timeout __in DWORD Timeout
); );
#if (NTDDI_VERSION >= NTDDI_VISTASP1)
DWORD
WINAPI
IcmpSendEcho2Ex(
__in HANDLE IcmpHandle,
__in_opt HANDLE Event,
#ifdef PIO_APC_ROUTINE_DEFINED
__in_opt PIO_APC_ROUTINE ApcRoutine,
#else
__in_opt FARPROC ApcRoutine,
#endif
__in_opt PVOID ApcContext,
__in IPAddr SourceAddress,
__in IPAddr DestinationAddress,
__in_bcount(RequestSize) LPVOID RequestData,
__in WORD RequestSize,
__in_opt PIP_OPTION_INFORMATION RequestOptions,
__out_bcount(ReplySize) LPVOID ReplyBuffer,
__in DWORD ReplySize,
__in DWORD Timeout
);
#endif
#if (NTDDI_VERSION >= NTDDI_WINXP)
DWORD DWORD
WINAPI WINAPI
Icmp6SendEcho2( Icmp6SendEcho2(
HANDLE IcmpHandle, __in HANDLE IcmpHandle,
HANDLE Event, __in_opt HANDLE Event,
#ifdef PIO_APC_ROUTINE_DEFINED #ifdef PIO_APC_ROUTINE_DEFINED
PIO_APC_ROUTINE ApcRoutine, __in_opt PIO_APC_ROUTINE ApcRoutine,
#else #else
FARPROC ApcRoutine, __in_opt FARPROC ApcRoutine,
#endif #endif
PVOID ApcContext, __in_opt PVOID ApcContext,
struct sockaddr_in6 *SourceAddress, __in struct sockaddr_in6 *SourceAddress,
struct sockaddr_in6 *DestinationAddress, __in struct sockaddr_in6 *DestinationAddress,
LPVOID RequestData, __in_bcount(RequestSize) LPVOID RequestData,
WORD RequestSize, __in WORD RequestSize,
PIP_OPTION_INFORMATION RequestOptions, __in_opt PIP_OPTION_INFORMATION RequestOptions,
LPVOID ReplyBuffer, __out_bcount(ReplySize) LPVOID ReplyBuffer,
DWORD ReplySize, __in DWORD ReplySize,
DWORD Timeout __in DWORD Timeout
); );
#endif
//++ //++
// //
// Routine Description: // Routine Description:
// //
// Parses the reply buffer provided and returns the number of ICMP responses found. // Parses the reply buffer provided and returns the number of ICMP responses found.
// //
// Arguments: // Arguments:
// //
// ReplyBuffer - This must be the same buffer that was passed to I cmpSendEcho2 // ReplyBuffer - This must be the same buffer that was passed to I cmpSendEcho2
skipping to change at line 316 skipping to change at line 340
// Returns the number of ICMP responses found. If there is an errors, return value is // Returns the number of ICMP responses found. If there is an errors, return value is
// zero. The error can be determined by a call to GetLastError. // zero. The error can be determined by a call to GetLastError.
// //
// Remarks: // Remarks:
// This function SHOULD NOT BE USED on a reply buffer that was passed to Send IcmpEcho. // This function SHOULD NOT BE USED on a reply buffer that was passed to Send IcmpEcho.
// SendIcmpEcho actually parses the buffer before returning back to the user. This function // SendIcmpEcho actually parses the buffer before returning back to the user. This function
// is meant to be used only with SendIcmpEcho2. // is meant to be used only with SendIcmpEcho2.
//-- //--
DWORD DWORD
WINAPI
IcmpParseReplies( IcmpParseReplies(
LPVOID ReplyBuffer, __in_bcount(ReplySize) LPVOID ReplyBuffer,
DWORD ReplySize __in DWORD ReplySize
); );
#if (NTDDI_VERSION >= NTDDI_WINXP)
DWORD DWORD
WINAPI
Icmp6ParseReplies( Icmp6ParseReplies(
LPVOID ReplyBuffer, __in_bcount(ReplySize) LPVOID ReplyBuffer,
DWORD ReplySize __in DWORD ReplySize
); );
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif // _ICMP_INCLUDED_ #endif // _ICMP_INCLUDED_
 End of changes. 20 change blocks. 
40 lines changed or deleted 67 lines changed or added


 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

This html diff was produced by rfcdiff 1.41.