|
|
/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
public\sdk\inc\nhapi.h
Abstract:
Public header for the Networking Helper DLL This was earlier called IP Helper DLL (iphlpapi.h) - but these are the new and improved functions.
Revision History:
AmritanR Created
--*/
#pragma once
////////////////////////////////////////////////////////////////////////////// // // // The following typedefs allow a 3rd to extend the interface name space of // // an Windows NT system. // // // //////////////////////////////////////////////////////////////////////////////
typedef DWORD (WINAPI * PNH_NAME_MAPPER_INIT)( VOID );
typedef VOID (WINAPI * PNH_NAME_MAPPER_DEINIT)( VOID );
typedef DWORD (WINAPI * PNH_NAME_MAPPER_MAP_GUID)( IN GUID *pGuid, OUT PWCHAR pwszBuffer, IN OUT PULONG pulBufferSize, IN BOOL bRefresh, IN BOOL bCache );
typedef DWORD (WINAPI * PNH_NAME_MAPPER_MAP_NAME)( IN PWCHAR pwszBuffer, OUT GUID *pGuid, IN BOOL bRefresh, IN BOOL bCache );
typedef DWORD (WINAPI * PNH_NAME_MAPPER_GET_DESCRIPTION)( IN GUID *pGuid, OUT PWCHAR pwszBuffer, IN OUT PULONG pulBufferSize, IN BOOL bCache, IN BOOL bRefresh );
DWORD NhGetInterfaceNameFromGuid( IN GUID *pGuid, OUT PWCHAR pwszBuffer, IN OUT PULONG pulBufferSize, IN BOOL bCache, IN BOOL bRefresh );
DWORD NhGetInterfaceNameFromDeviceGuid( IN GUID *pGuid, OUT PWCHAR pwszBuffer, IN OUT PULONG pulBufferSize, IN BOOL bCache, IN BOOL bRefresh );
DWORD NhGetGuidFromInterfaceName( IN PWCHAR pwszName, OUT GUID *pGuid, IN BOOL bCache, IN BOOL bRefresh );
DWORD NhGetInterfaceDescriptionFromGuid( IN GUID *pGuid, OUT PWCHAR pwszBuffer, IN OUT PULONG pulBufferSize, IN BOOL bCache, IN BOOL bRefresh );
////////////////////////////////////////////////////////////////////////////// // // // The following functions get interface related statistics and information // // // //////////////////////////////////////////////////////////////////////////////
typedef struct _NH_IF_STATS_0 { DWORD dwIndex; DWORD dwAdminStatus; DWORD dwOperationalStatus; ULONG ulMtu; ULONG ulSpeed; ULONGLONG ullInOctets; ULONGLONG ullInMulticastOctets; ULONGLONG ullInBroadcastOctets; ULONGLONG ullInUnicastPkts; ULONGLONG ullInBroadcastPkts; ULONGLONG ullInMulticastPkts; ULONGLONG ullInDiscardedPkts; ULONGLONG ullInErrors; ULONGLONG ullInUnknownUpperLayer; ULONGLONG ullOutOctets; ULONGLONG ullOutMulticastOctets; ULONGLONG ullOutBroadcastOctets; ULONGLONG ullOutUnicastPkts; ULONGLONG ullOutBroadcastPkts; ULONGLONG ullOutMulticastPkts; ULONGLONG ullOutDiscardedPkts; ULONGLONG ullOutErrors; ULONGLONG ullInDifferentIfPkts; BOOL bPromiscuousMode; BOOL bMediaSensed;
}NH_IF_STATS_0, *PNH_IF_STATS_0;
typedef struct _NH_IF_INFO_0 { GUID Guid; DWORD dwIndex; DWORD dwMediaType; USHORT usConnectionType; USHORT usAccessType; USHORT usPhysAddrLen; USHORT usPhysAddrOffset;
}NH_IF_INFO_0, *PNH_IF_INFO_0;
DWORD NhGetInterfaceTable( IN DWORD dwVersion, OUT PBYTE pbyInfoTable, IN OUT PULONG pulBufferSize, OUT PULONG pulNumEntries, IN OUT PVOID pvResumeContext );
DWORD NhGetInterface( IN DWORD dwVersion, OUT PBYTE pbyInterfaceInfo );
DWORD NhGetInterfaceStatisticsTable( IN DWORD dwVersion, OUT PBYTE pbyStatisticsTable, IN OUT PULONG pulBufferSize, OUT PULONG pulNumEntries, IN OUT PVOID pvResumeContext );
DWORD NhGetInterfaceStatistics( IN DWORD dwVersion, OUT PBYTE pbyInterfaceStatistics );
DWORD NhGetIp4AddressTable( );
////////////////////////////////////////////////////////////////////////////// // // // The following functions are related to IP ARP entries // // // //////////////////////////////////////////////////////////////////////////////
typedef struct _NH_IP4_ARP_ENTRY_0 { DWORD dwIndex; DWORD dwIpAddress; USHORT usType; USHORT usAddressLength; BYTE byAddress[0];
}NH_IP4_ARP_ENTRY_0, *PNH_IP4_ARP_ENTRY_0;
DWORD NhGetIp4ArpTable( IN DWORD dwVersion, OUT PBYTE pbyArpTable, IN OUT PULONG pulBufferSize, OUT PULONG pulNumEntries, IN OUT PVOID pvResumeContext );
DWORD NhFlushIp4ArpTable( IN DWORD dwIfIndex OPTIONAL );
DWORD NhSetIp4ArpEntry( );
DWORD NhDeleteIp4ArpEntry( );
////////////////////////////////////////////////////////////////////////////// // // // The following functions are related to IP Proxy ARP tables // // // //////////////////////////////////////////////////////////////////////////////
DWORD NhGetIp4ProxyArpTable( );
DWORD NhSetIp4ProxyArpEntry( );
DWORD NhDeleteIp4ProxyArpEntry( );
////////////////////////////////////////////////////////////////////////////// // // // The following functions are related to the IP Routing Table // // // //////////////////////////////////////////////////////////////////////////////
typedef struct _NH_IP4_ROUTE_0 { DWORD dwDestination; DWORD dwMask; DWORD dwPolicy; DWORD dwNextHop; DWORD dwIfIndex; DWORD dwType; DWORD dwProto; DWORD dwAge; DWORD dwNextHopAS; DWORD dwMetric1; DWORD dwMetric2; DWORD dwMetric3; DWORD dwMetric4; DWORD dwMetric5;
}NH_IP4_ROUTE_0, *PNH_IP4_ROUTE_0;
DWORD NhGetIp4RouteTable( );
DWORD NhGetIp4BestRoute( );
DWORD NhSetIp4RouteEntry( );
DWORD NhDeleteIp4RouteEntry( );
////////////////////////////////////////////////////////////////////////////// // // // The following functions are related to IP Proxy ARP tables // // // //////////////////////////////////////////////////////////////////////////////
typedef struct _NH_IP4_STATISTICS_0 { DWORD dwForwarding; DWORD dwDefaultTTL; ULONGLONG ullInReceives; ULONGLONG ullInHdrErrors; ULONGLONG ullInAddrErrors; ULONGLONG ullForwDatagrams; ULONGLONG ullInUnknownProtos; ULONGLONG ullInDiscards; ULONGLONG ullInDelivers; ULONGLONG ullOutRequests; ULONGLONG ullRoutingDiscards; ULONGLONG ullOutDiscards; ULONGLONG ullOutNoRoutes; ULONGLONG ullReasmTimeout; ULONGLONG ullReasmReqds; ULONGLONG ullReasmOks; ULONGLONG ullReasmFails; ULONGLONG ullFragOks; ULONGLONG ullFragFails; ULONGLONG ullFragCreates; ULONG ulNumIf; ULONG ulNumAddr; ULONG ulNumRoutes;
}NH_IP4_STATISTICS_0, *PNH_IP4_STATISTICS_0;
DWORD NhGetIp4Statistics( );
typedef struct _NH_IP4_TCP_STATISTICS_0 { DWORD dwRtoAlgorithm; DWORD dwRtoMin; DWORD dwRtoMax; DWORD dwMaxConn; DWORD dwActiveOpens; DWORD dwPassiveOpens; DWORD dwAttemptFails; DWORD dwEstabResets; DWORD dwCurrEstab; DWORD dwInSegs; DWORD dwOutSegs; DWORD dwRetransSegs; DWORD dwInErrs; DWORD dwOutRsts; DWORD dwNumConns;
}NH_IP4_TCP_STATISTICS_0, *PNH_IP4_TCP_STATISTICS_0;
DWORD NhGetIp4TcpStatistics( );
typedef struct _NH_IP4_UDP_STATISTICS_0 { DWORD dwInDatagrams; DWORD dwNoPorts; DWORD dwInErrors; DWORD dwOutDatagrams; DWORD dwNumAddrs;
}NH_IP4_UDP_STATISTICS_0, *PNH_IP4_UDP_STATISTICS_0;
DWORD NhGetIp4UdpStatistics( );
typedef struct _NH_IP4_ICMP_STATISTICS_0 { DWORD dwInMsgs; DWORD dwInErrors; DWORD dwInDestUnreachs; DWORD dwInTimeExcds; DWORD dwInParmProbs; DWORD dwInSrcQuenchs; DWORD dwInRedirects; DWORD dwInEchos; DWORD dwInEchoReps; DWORD dwInTimestamps; DWORD dwInTimestampReps; DWORD dwInAddrMasks; DWORD dwInAddrMaskReps;
DWORD dwOutMsgs; DWORD dwOutErrors; DWORD dwOutDestUnreachs; DWORD dwOutTimeExcds; DWORD dwOutParmProbs; DWORD dwOutSrcQuenchs; DWORD dwOutRedirects; DWORD dwOutEchos; DWORD dwOutEchoReps; DWORD dwOutTimestamps; DWORD dwOutTimestampReps; DWORD dwOutAddrMasks; DWORD dwOutAddrMaskReps;
}NH_IP4_ICMP_STATISTICS_0, *PNH_IP4_ICMP_STATISTICS_0;
DWORD NhGetIp4IcmpStatistics( );
////////////////////////////////////////////////////////////////////////////// // // // The following functions are related to Global IP Configuration // // // //////////////////////////////////////////////////////////////////////////////
typedef struct _NH_IP4_INFO_0 { DWORD a; }NH_IP4_INFO_0, *PNH_IP4_INFO_0;
////////////////////////////////////////////////////////////////////////////// // // // The following functions are related to per interface IP Configuration // // // //////////////////////////////////////////////////////////////////////////////
typedef struct _NH_IP4_INTERFACE_INFO_0 { DWORD a; }NH_IP4_INTERFACE_INFO_0, *PNH_IP4_INTERFACE_INFO_0;
|