Compartilhar via


Função GetIcmpStatistics (iphlpapi.h)

A função GetIcmpStatistics recupera o protocolo ICMP para estatísticas IPv4 para o computador local.

Sintaxe

IPHLPAPI_DLL_LINKAGE ULONG GetIcmpStatistics(
  [out] PMIB_ICMP Statistics
);

Parâmetros

[out] Statistics

Um ponteiro para uma estrutura MIB_ICMP que recebe as estatísticas de ICMP para o computador local.

Retornar valor

Se a função for bem-sucedida, o valor retornado será NO_ERROR.

Se a função falhar, o valor retornado será um dos códigos de erro a seguir.

Código de retorno Descrição
ERROR_INVALID_PARAMETER
O parâmetro pStats é NULL ou GetIcmpStatistics não pode gravar na memória apontada pelo parâmetro pStats .
Outros
Use a função FormatMessage para obter a cadeia de caracteres de mensagem para o erro retornado.

Comentários

A função GetIcmpStatistics retorna as estatísticas de ICMP para IPv4 no computador local. No Windows XP e posterior, o GetIpStatisticsEx pode ser usado para obter as estatísticas de ICMP para IPv4 ou IPv6 no computador local.

Exemplos

O exemplo a seguir recupera o ICMP para estatísticas IPv4 para o computador local e imprime algumas informações dos dados retornados.

#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 Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho iphlpapi.h
Biblioteca Iphlpapi.lib
DLL Iphlpapi.dll

Confira também

GetIpStatistics

GetIpStatisticsEx

Gettcpstatistics

GetUdpStatistics

Referência de função auxiliar de IP

Página Inicial do Auxiliar de IP

MIB_ICMP