Freigeben über


GetIcmpStatistics-Funktion (iphlpapi.h)

Die GetIcmpStatistics-Funktion ruft das Internet Control Message Protocol (ICMP) für IPv4-Statistiken für den lokalen Computer ab.

Syntax

IPHLPAPI_DLL_LINKAGE ULONG GetIcmpStatistics(
  [out] PMIB_ICMP Statistics
);

Parameter

[out] Statistics

Ein Zeiger auf eine MIB_ICMP-Struktur , die die ICMP-Statistiken für den lokalen Computer empfängt.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert NO_ERROR.

Wenn die Funktion fehlschlägt, ist der Rückgabewert einer der folgenden Fehlercodes.

Rückgabecode Beschreibung
ERROR_INVALID_PARAMETER
Der pStats-Parameter ist NULL, oder GetIcmpStatistics kann nicht in den Speicher schreiben, auf den der pStats-Parameter verweist.
Andere
Verwenden Sie die FormatMessage-Funktion , um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen.

Hinweise

Die GetIcmpStatistics-Funktion gibt die ICMP-Statistiken für IPv4 auf dem lokalen Computer zurück. Unter Windows XP und höher kann getIpStatisticsEx verwendet werden, um die ICMP-Statistiken für IPv4 oder IPv6 auf dem lokalen Computer abzurufen.

Beispiele

Im folgenden Beispiel werden die ICMP für IPv4-Statistiken für den lokalen Computer abgerufen und einige Informationen aus den zurückgegebenen Daten ausgegeben.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile iphlpapi.h
Bibliothek Iphlpapi.lib
DLL Iphlpapi.dll

Weitere Informationen

GetIpStatistics

GetIpStatisticsEx

GetTcpStatistics

GetUdpStatistics

IP-Hilfsfunktionsreferenz

IP-Hilfsprogramm-Startseite

MIB_ICMP