Share via


Función GetIcmpStatistics (iphlpapi.h)

La función GetIcmpStatistics recupera el Protocolo de mensajes de control de Internet (ICMP) para las estadísticas de IPv4 para el equipo local.

Sintaxis

IPHLPAPI_DLL_LINKAGE ULONG GetIcmpStatistics(
  [out] PMIB_ICMP Statistics
);

Parámetros

[out] Statistics

Puntero a una estructura de MIB_ICMP que recibe las estadísticas de ICMP para el equipo local.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es NO_ERROR.

Si se produce un error en la función, el valor devuelto es uno de los siguientes códigos de error.

Código devuelto Descripción
ERROR_INVALID_PARAMETER
El parámetro pStats es NULL o GetIcmpStatistics no puede escribir en la memoria a la que apunta el parámetro pStats .
Otros
Use la función FormatMessage para obtener la cadena de mensaje del error devuelto.

Comentarios

La función GetIcmpStatistics devuelve las estadísticas icMP de IPv4 en el equipo local. En Windows XP y versiones posteriores, se puede usar GetIpStatisticsEx para obtener las estadísticas de ICMP para IPv4 o IPv6 en el equipo local.

Ejemplos

En el ejemplo siguiente se recuperan las estadísticas de ICMP para IPv4 para el equipo local y se imprime información de los datos devueltos.

#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;
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado iphlpapi.h
Library Iphlpapi.lib
Archivo DLL Iphlpapi.dll

Consulte también

GetIpStatistics

GetIpStatisticsEx

GetTcpStatistics

GetUdpStatistics

Referencia de la función auxiliar de IP

Página de inicio del asistente de IP

MIB_ICMP