Partager via


GetNetworkParams, fonction (iphlpapi.h)

La fonction GetNetworkParams récupère les paramètres réseau de l’ordinateur local.

Syntaxe

IPHLPAPI_DLL_LINKAGE DWORD GetNetworkParams(
  [out] PFIXED_INFO pFixedInfo,
  [in]  PULONG      pOutBufLen
);

Paramètres

[out] pFixedInfo

Pointeur vers une mémoire tampon qui contient une structure FIXED_INFO qui reçoit les paramètres réseau de l’ordinateur local, si la fonction a réussi. Cette mémoire tampon doit être allouée par l’appelant avant d’appeler la fonction GetNetworkParams .

[in] pOutBufLen

Pointeur vers une variable ULONG qui spécifie la taille de la structure FIXED_INFO . Si cette taille est insuffisante pour contenir les informations, GetNetworkParams remplit cette variable avec la taille requise et retourne un code d’erreur de ERROR_BUFFER_OVERFLOW.

Valeur retournée

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

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

Code de retour Description
ERROR_BUFFER_OVERFLOW
La mémoire tampon pour recevoir les informations de paramètre réseau est trop petite. Cette valeur est retournée si le paramètre pOutBufLen est trop petit pour contenir les informations de paramètre réseau ou si le paramètre pFixedInfo était un pointeur NULL . Lorsque ce code d’erreur est retourné, le paramètre pOutBufLen pointe vers la taille de mémoire tampon requise.
ERROR_INVALID_PARAMETER
Un paramètre non valide a été transmis à la fonction. Cette erreur est retournée si le paramètre pOutBufLen est un pointeur NULL , si le processus appelant n’a pas d’accès en lecture/écriture à la mémoire pointée par pOutBufLen, ou si le processus appelant n’a pas d’accès en écriture à la mémoire pointée par le paramètre pFixedInfo .
ERROR_NO_DATA
Il n’existe aucune information de paramètre réseau pour l’ordinateur local.
ERROR_NOT_SUPPORTED
La fonction GetNetworkParams n’est pas prise en charge par le système d’exploitation s’exécutant sur l’ordinateur local.
Autres
Si la fonction échoue, utilisez FormatMessage pour obtenir la chaîne de message correspondant à l’erreur retournée.

Remarques

La fonction GetNetworkParams est utilisée pour récupérer les paramètres réseau de l’ordinateur local. Les paramètres réseau sont retournés dans une structure FIXED_INFO . La mémoire de la structure FIXED_INFO doit être allouée par l’application. Il incombe à l’application de libérer cette mémoire lorsqu’elle n’est plus nécessaire.

Dans microsoft Kit de développement logiciel Windows (Kit SDK Windows) (SDK), la structure FIXED_INFO_WIN2KSP1 est définie. Lors de la compilation d’une application si la plateforme cible est Windows 2000 avec Service Pack 1 (SP1) et versions ultérieures (NTDDI_VERSION >= NTDDI_WIN2KSP1, _WIN32_WINNT >= 0x0501ou WINVER >= 0x0501), le FIXED_INFO_WIN2KSP1 struct est typé à la structure FIXED_INFO . Lors de la compilation d’une application si la plateforme cible n’est pas Windows 2000 avec SP1 et versions ultérieures, la structure FIXED_INFO n’est pas définie.

La fonction GetNetworkParams et la structure FIXED_INFO sont prises en charge sur Windows 98 et versions ultérieures. Toutefois, pour créer une application pour une plateforme cible antérieure à Windows 2000 avec Service Pack 1 (SP1), une version antérieure du Kit de développement logiciel (SDK) de plateforme doit être utilisée.

Exemples

L’exemple suivant récupère les paramètres réseau de l’ordinateur local et imprime des informations à partir des données retournées.

//
// Link with IPHlpAPI.lib
//
#include <winsock2.h>
#include <iphlpapi.h>
#include <stdio.h>
#include <windows.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 __cdecl main()
{

    FIXED_INFO *pFixedInfo;
    ULONG ulOutBufLen;
    DWORD dwRetVal;
    IP_ADDR_STRING *pIPAddr;

    pFixedInfo = (FIXED_INFO *) MALLOC(sizeof (FIXED_INFO));
    if (pFixedInfo == NULL) {
        printf("Error allocating memory needed to call GetNetworkParams\n");
        return 1;
    }
    ulOutBufLen = sizeof (FIXED_INFO);

// Make an initial call to GetAdaptersInfo to get
// the necessary size into the ulOutBufLen variable
    if (GetNetworkParams(pFixedInfo, &ulOutBufLen) == ERROR_BUFFER_OVERFLOW) {
        FREE(pFixedInfo);
        pFixedInfo = (FIXED_INFO *) MALLOC(ulOutBufLen);
        if (pFixedInfo == NULL) {
            printf("Error allocating memory needed to call GetNetworkParams\n");
            return 1;
        }
    }

    if (dwRetVal = GetNetworkParams(pFixedInfo, &ulOutBufLen) == NO_ERROR) {

        printf("Host Name: %s\n", pFixedInfo->HostName);
        printf("Domain Name: %s\n", pFixedInfo->DomainName);

        printf("DNS Servers:\n");
        printf("\t%s\n", pFixedInfo->DnsServerList.IpAddress.String);

        pIPAddr = pFixedInfo->DnsServerList.Next;
        while (pIPAddr) {
            printf("\t%s\n", pIPAddr->IpAddress.String);
            pIPAddr = pIPAddr->Next;
        }

        printf("Node Type: ");
        switch (pFixedInfo->NodeType) {
        case BROADCAST_NODETYPE:
            printf("Broadcast node\n");
            break;
        case PEER_TO_PEER_NODETYPE:
            printf("Peer to Peer node\n");
            break;
        case MIXED_NODETYPE:
            printf("Mixed node\n");
            break;
        case HYBRID_NODETYPE:
            printf("Hybrid node\n");
            break;
        default:
            printf("Unknown node type %0lx\n", pFixedInfo->NodeType);
            break;
        }

        printf("DHCP scope name: %s\n", pFixedInfo->ScopeId);

        if (pFixedInfo->EnableRouting)
            printf("Routing: enabled\n");
        else
            printf("Routing: disabled\n");

        if (pFixedInfo->EnableProxy)
            printf("ARP proxy: enabled\n");
        else
            printf("ARP Proxy: disabled\n");

        if (pFixedInfo->EnableDns)
            printf("DNS: enabled\n");
        else
            printf("DNS: disabled\n");

    } else {
        printf("GetNetworkParams failed with error: %d\n", dwRetVal);
        return 1;
    }

    if (pFixedInfo)
        FREE(pFixedInfo);

    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

FIXED_INFO

Informations de référence sur la fonction d’assistance IP

Page d’accueil de l’assistance IP