Partager via


GetIcmpStatistics, fonction (iphlpapi.h)

La fonction GetIcmpStatistics récupère le protocole ICMP (Internet Control Message Protocol) pour les statistiques IPv4 de l’ordinateur local.

Syntaxe

IPHLPAPI_DLL_LINKAGE ULONG GetIcmpStatistics(
  [out] PMIB_ICMP Statistics
);

Paramètres

[out] Statistics

Pointeur vers une structure MIB_ICMP qui reçoit les statistiques ICMP pour l’ordinateur local.

Valeur retournée

Si la fonction réussit, la valeur de retour est NO_ERROR.

Si la fonction échoue, la valeur de retour est l’un des codes d’erreur suivants.

Code de retour Description
ERROR_INVALID_PARAMETER
Le paramètre pStats est NULL, ou GetIcmpStatistics ne peut pas écrire dans la mémoire pointée par le paramètre pStats .
Autres
Utilisez la fonction FormatMessage pour obtenir la chaîne de message de l’erreur retournée.

Remarques

La fonction GetIcmpStatistics retourne les statistiques ICMP pour IPv4 sur l’ordinateur local. Sur Windows XP et versions ultérieures, GetIpStatisticsEx peut être utilisé pour obtenir les statistiques ICMP pour IPv4 ou IPv6 sur l’ordinateur local.

Exemples

L’exemple suivant récupère les statistiques ICMP pour IPv4 pour l’ordinateur local et imprime des informations à partir des données retournées.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête iphlpapi.h
Bibliothèque Iphlpapi.lib
DLL Iphlpapi.dll

Voir aussi

GetIpStatistics

GetIpStatisticsEx

GetTcpStatistics

GetUdpStatistics

Informations de référence sur les fonctions d’assistance IP

Page de démarrage de l’assistance IP

MIB_ICMP