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 |
---|---|
|
Le paramètre pStats est NULL, ou GetIcmpStatistics ne peut pas écrire dans la mémoire pointée par le paramètre pStats . |
|
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
Informations de référence sur les fonctions d’assistance IP