GetTcpStatistics, fonction (iphlpapi.h)

La fonction GetTcpStatistics récupère les statistiques TCP de l’ordinateur local.

Syntaxe

IPHLPAPI_DLL_LINKAGE ULONG GetTcpStatistics(
  [out] PMIB_TCPSTATS Statistics
);

Paramètres

[out] Statistics

Pointeur vers une structure MIB_TCPSTATS qui reçoit les statistiques TCP de 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 GetTcpStatistics ne peut pas écrire dans la mémoire vers laquelle pointe le paramètre pStats .
Autres
Utilisez la fonction FormatMessage pour obtenir la chaîne de message de l’erreur retournée.

Notes

La fonction GetTcpStatistics retourne les statistiques TCP pour IPv4 sur l’ordinateur actuel. Sur Windows XP et versions ultérieures, GetTcpStatisticsEx peut être utilisé pour obtenir les statistiques TCP pour IPv4 ou IPv6.

Exemples

L’exemple suivant récupère les statistiques TCP de l’ordinateur local et imprime certaines valeurs à partir des données retournées.

//#include <windows.h>
#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()
{
    PMIB_TCPSTATS pTCPStats;
    DWORD dwRetVal = 0;

    pTCPStats = (MIB_TCPSTATS*) MALLOC (sizeof(MIB_TCPSTATS));
    if (pTCPStats == NULL) {
        printf("Error allocating memory\n");
        return 1;
    }

    if ((dwRetVal = GetTcpStatistics(pTCPStats)) == NO_ERROR) {
      printf("\tActive Opens: %ld\n", pTCPStats->dwActiveOpens);
      printf("\tPassive Opens: %ld\n", pTCPStats->dwPassiveOpens);
      printf("\tSegments Recv: %ld\n", pTCPStats->dwInSegs);
      printf("\tSegments Xmit: %ld\n", pTCPStats->dwOutSegs);
      printf("\tTotal # Conxs: %ld\n", pTCPStats->dwNumConns);
    }
    else {
      printf("GetTcpStatistics failed with error: %ld\n", dwRetVal);
      
      LPVOID lpMsgBuf;
      if (FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | 
        FORMAT_MESSAGE_FROM_SYSTEM | 
        FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        dwRetVal,
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
        (LPTSTR) &lpMsgBuf,
        0,
        NULL )) {
        printf("\tError: %s", lpMsgBuf);
      }
      LocalFree( lpMsgBuf );
    }

    if (pTCPStats)
        FREE (pTCPStats);
}

Spécifications

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

Voir aussi

GetIcmpStatistics

GetIpStatistics

GetTcpStatisticsEx

GetUdpStatistics

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

Page de démarrage de l’assistance IP

MIB_TCPSTATS