Función GetNetworkParams (iphlpapi.h)

La función GetNetworkParams recupera los parámetros de red del equipo local.

Sintaxis

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

Parámetros

[out] pFixedInfo

Puntero a un búfer que contiene una estructura de FIXED_INFO que recibe los parámetros de red para el equipo local, si la función se realizó correctamente. El autor de la llamada debe asignar este búfer antes de llamar a la función GetNetworkParams .

[in] pOutBufLen

Puntero a una variable ULONG que especifica el tamaño de la estructura FIXED_INFO . Si este tamaño no es suficiente para contener la información, GetNetworkParams rellena esta variable con el tamaño necesario y devuelve un código de error de ERROR_BUFFER_OVERFLOW.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto se ERROR_SUCCESS.

Si se produce un error en la función, el valor devuelto es uno de los siguientes códigos de error.

Código devuelto Descripción
ERROR_BUFFER_OVERFLOW
El búfer para recibir la información de parámetros de red es demasiado pequeño. Este valor se devuelve si el parámetro pOutBufLen es demasiado pequeño para contener la información del parámetro de red o el parámetro pFixedInfo era un puntero NULL . Cuando se devuelve este código de error, el parámetro pOutBufLen apunta al tamaño de búfer necesario.
ERROR_INVALID_PARAMETER
Se pasó un parámetro no válido a la función. Este error se devuelve si el parámetro pOutBufLen es un puntero NULL , el proceso de llamada no tiene acceso de lectura y escritura a la memoria a la que apunta pOutBufLen o el proceso de llamada no tiene acceso de escritura a la memoria a la que apunta el parámetro pFixedInfo .
ERROR_NO_DATA
No existe información de parámetros de red para el equipo local.
ERROR_NOT_SUPPORTED
El sistema operativo que se ejecuta en el equipo local no admite la función GetNetworkParams .
Otros
Si se produce un error en la función, use FormatMessage para obtener la cadena de mensaje para el error devuelto.

Comentarios

La función GetNetworkParams se usa para recuperar parámetros de red para el equipo local. Los parámetros de red se devuelven en una estructura FIXED_INFO . La aplicación debe asignar la memoria de la estructura FIXED_INFO . Es responsabilidad de la aplicación liberar esta memoria cuando ya no se necesite.

En Microsoft Kit de desarrollo de software de Windows (SDK), se define la estructura de FIXED_INFO_WIN2KSP1. Al compilar una aplicación si la plataforma de destino es Windows 2000 con Service Pack 1 (SP1) y versiones posteriores (NTDDI_VERSION >= NTDDI_WIN2KSP1, _WIN32_WINNT >= 0x0501o WINVER >= 0x0501), la estructura FIXED_INFO_WIN2KSP1 se escribe en la estructura FIXED_INFO . Al compilar una aplicación si la plataforma de destino no es Windows 2000 con SP1 y versiones posteriores, la estructura de FIXED_INFO no está definida.

La función GetNetworkParams y la estructura FIXED_INFO se admiten en Windows 98 y versiones posteriores. Pero para compilar una aplicación para una plataforma de destino anterior a Windows 2000 con Service Pack 1 (SP1), se debe usar una versión anterior del Kit de desarrollo de software de plataforma (SDK).

Ejemplos

En el ejemplo siguiente se recuperan los parámetros de red del equipo local y se imprime información de los datos devueltos.

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


Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado iphlpapi.h
Library Iphlpapi.lib
Archivo DLL Iphlpapi.dll

Consulte también

FIXED_INFO

Referencia de la función auxiliar de IP

Página de inicio del asistente de IP