Funzione GetNetworkParams (iphlpapi.h)

La funzione GetNetworkParams recupera i parametri di rete per il computer locale.

Sintassi

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

Parametri

[out] pFixedInfo

Puntatore a un buffer contenente una struttura FIXED_INFO che riceve i parametri di rete per il computer locale, se la funzione ha avuto esito positivo. Questo buffer deve essere allocato dal chiamante prima di chiamare la funzione GetNetworkParams .

[in] pOutBufLen

Puntatore a una variabile ULONG che specifica le dimensioni della struttura FIXED_INFO . Se questa dimensione non è sufficiente per contenere le informazioni, GetNetworkParams compila questa variabile con le dimensioni necessarie e restituisce un codice di errore di ERROR_BUFFER_OVERFLOW.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene ERROR_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore seguenti.

Codice restituito Descrizione
ERROR_BUFFER_OVERFLOW
Il buffer per ricevere le informazioni sui parametri di rete è troppo piccolo. Questo valore viene restituito se il parametro pOutBufLen è troppo piccolo per contenere le informazioni sui parametri di rete o il parametro pFixedInfo è un puntatore NULL . Quando viene restituito questo codice di errore, il parametro pOutBufLen punta alle dimensioni del buffer necessarie.
ERROR_INVALID_PARAMETER
Alla funzione è stato passato un parametro non valido. Questo errore viene restituito se il parametro pOutBufLen è un puntatore NULL , il processo chiamante non ha accesso in lettura/scrittura alla memoria a cui punta pOutBufLen o il processo chiamante non ha accesso in scrittura alla memoria a cui punta il parametro pFixedInfo .
ERROR_NO_DATA
Non esistono informazioni sui parametri di rete per il computer locale.
ERROR_NOT_SUPPORTED
La funzione GetNetworkParams non è supportata dal sistema operativo in esecuzione nel computer locale.
Altri
Se la funzione ha esito negativo, usare FormatMessage per ottenere la stringa del messaggio per l'errore restituito.

Commenti

La funzione GetNetworkParams viene usata per recuperare i parametri di rete per il computer locale. I parametri di rete vengono restituiti in una struttura FIXED_INFO . La memoria per la struttura FIXED_INFO deve essere allocata dall'applicazione. È responsabilità dell'applicazione liberare questa memoria quando non è più necessaria.

In Microsoft Windows Software Development Kit (Windows SDK) (SDK) viene definita la struttura FIXED_INFO_WIN2KSP1. Quando si compila un'applicazione se la piattaforma di destinazione è Windows 2000 con Service Pack 1 (SP1) e versioni successive (NTDDI_VERSION >= NTDDI_WIN2KSP1, _WIN32_WINNT >= 0x0501o WINVER >= 0x0501), lo struct FIXED_INFO_WIN2KSP1 viene tipizzato nella struttura FIXED_INFO . Quando si compila un'applicazione se la piattaforma di destinazione non è Windows 2000 con SP1 e versioni successive, la struttura FIXED_INFO non è definita.

La funzione GetNetworkParams e la struttura FIXED_INFO sono supportate in Windows 98 e versioni successive. Tuttavia, per compilare un'applicazione per una piattaforma di destinazione precedente a Windows 2000 con Service Pack 1 (SP1), è necessario usare una versione precedente di Platform Software Development Kit (SDK).

Esempio

Nell'esempio seguente vengono recuperati i parametri di rete per il computer locale e vengono stampate le informazioni dai dati restituiti.

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


Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione iphlpapi.h
Libreria Iphlpapi.lib
DLL Iphlpapi.dll

Vedi anche

FIXED_INFO

Informazioni di riferimento sulle funzioni helper IP

Pagina iniziale dell'helper IP