GetIcmpStatistics function (iphlpapi.h)
The GetIcmpStatistics function retrieves the Internet Control Message Protocol (ICMP) for IPv4 statistics for the local computer.
Syntax
IPHLPAPI_DLL_LINKAGE ULONG GetIcmpStatistics(
[out] PMIB_ICMP Statistics
);
Parameters
[out] Statistics
A pointer to a MIB_ICMP structure that receives the ICMP statistics for the local computer.
Return value
If the function succeeds, the return value is NO_ERROR.
If the function fails, the return value is one of the following error codes.
Return code | Description |
---|---|
|
The pStats parameter is NULL, or GetIcmpStatistics is unable to write to the memory pointed to by the pStats parameter. |
|
Use the FormatMessage function to obtain the message string for the returned error. |
Remarks
The GetIcmpStatistics function returns the ICMP statistics for IPv4 on the local computer. On Windows XP and later, the GetIpStatisticsEx can be used to obtain the ICMP statistics for either IPv4 or IPv6 on the local computer.
Examples
The following example retrieves the ICMP for IPv4 statistics for the local computer and prints some information from the returned data.
#ifndef UNICODE
#define UNICODE
#endif
#include <winsock2.h>
#include <ws2tcpip.h>
#include <iphlpapi.h>
#include <stdio.h>
#pragma comment(lib, "iphlpapi.lib")
#define MALLOC(x) HeapAlloc(GetProcessHeap(), 0, (x))
#define FREE(x) HeapFree(GetProcessHeap(), 0, (x))
/* Note: could also use malloc() and free() */
int main()
{
DWORD dwRetVal = 0;
PMIB_ICMP pIcmpStats;
pIcmpStats = (MIB_ICMP *) MALLOC(sizeof (MIB_ICMP));
if (pIcmpStats == NULL) {
wprintf(L"Error allocating memory\n");
return 1;
}
dwRetVal = GetIcmpStatistics(pIcmpStats);
if (dwRetVal == NO_ERROR) {
wprintf(L"Number of incoming ICMP messages: %ld\n",
pIcmpStats->stats.icmpInStats.dwMsgs);
wprintf(L"Number of incoming ICMP errors received: %ld\n",
pIcmpStats->stats.icmpInStats.dwErrors);
wprintf(L"Number of outgoing ICMP messages: %ld\n",
pIcmpStats->stats.icmpOutStats.dwMsgs);
wprintf(L"Number of outgoing ICMP errors sent: %ld\n",
pIcmpStats->stats.icmpOutStats.dwErrors);
} else {
wprintf(L"GetIcmpStatistics failed with error: %ld\n", dwRetVal);
}
if (pIcmpStats)
FREE(pIcmpStats);
return 0;
}
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 2000 Professional [desktop apps | UWP apps] |
Minimum supported server | Windows 2000 Server [desktop apps | UWP apps] |
Target Platform | Windows |
Header | iphlpapi.h |
Library | Iphlpapi.lib |
DLL | Iphlpapi.dll |