Freigeben über


GetNetworkParams-Funktion (iphlpapi.h)

Die GetNetworkParams-Funktion ruft Netzwerkparameter für den lokalen Computer ab.

Syntax

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

Parameter

[out] pFixedInfo

Ein Zeiger auf einen Puffer, der eine FIXED_INFO Struktur enthält, die die Netzwerkparameter für den lokalen Computer empfängt, wenn die Funktion erfolgreich war. Dieser Puffer muss vom Aufrufer zugewiesen werden, bevor die GetNetworkParams-Funktion aufgerufen wird.

[in] pOutBufLen

Ein Zeiger auf eine ULONG-Variable , die die Größe der FIXED_INFO-Struktur angibt. Wenn diese Größe nicht ausreicht, um die Informationen aufzunehmen, füllt GetNetworkParams diese Variable mit der erforderlichen Größe aus und gibt einen Fehlercode mit ERROR_BUFFER_OVERFLOW zurück.

Rückgabewert

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

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

Rückgabecode Beschreibung
ERROR_BUFFER_OVERFLOW
Der Puffer zum Empfangen der Netzwerkparameterinformationen ist zu klein. Dieser Wert wird zurückgegeben, wenn der pOutBufLen-Parameter zu klein ist, um die Netzwerkparameterinformationen enthalten zu können, oder wenn der pFixedInfo-Parameter ein NULL-Zeiger war. Wenn dieser Fehlercode zurückgegeben wird, verweist der pOutBufLen-Parameter auf die erforderliche Puffergröße.
ERROR_INVALID_PARAMETER
Es wurde ein ungültiger Parameter an die Funktion übergeben. Dieser Fehler wird zurückgegeben, wenn der pOutBufLen-Parameter ein NULL-Zeiger ist, der aufrufende Prozess keinen Lese-/Schreibzugriff auf den Speicher hat, auf den pOutBufLen verweist, oder wenn der aufrufende Prozess keinen Schreibzugriff auf den Speicher hat, auf den der pFixedInfo-Parameter verweist.
ERROR_NO_DATA
Für den lokalen Computer sind keine Netzwerkparameterinformationen vorhanden.
ERROR_NOT_SUPPORTED
Die GetNetworkParams-Funktion wird vom Betriebssystem, das auf dem lokalen Computer ausgeführt wird, nicht unterstützt.
Andere
Wenn die Funktion fehlschlägt, verwenden Sie FormatMessage , um die Nachrichtenzeichenfolge für den zurückgegebenen Fehler abzurufen.

Hinweise

Die GetNetworkParams-Funktion wird verwendet, um Netzwerkparameter für den lokalen Computer abzurufen. Netzwerkparameter werden in einer FIXED_INFO-Struktur zurückgegeben. Der Arbeitsspeicher für die FIXED_INFO-Struktur muss von der Anwendung zugewiesen werden. Es liegt in der Verantwortung der Anwendung, diesen Arbeitsspeicher freizugeben, wenn er nicht mehr benötigt wird.

Im Microsoft Windows Software Development Kit (SDK) wird die FIXED_INFO_WIN2KSP1-Struktur definiert. Beim Kompilieren einer Anwendung, wenn es sich FIXED_INFO bei der Zielplattform um Windows 2000 mit Service Pack 1 (SP1) und höher (NTDDI_VERSION >= NTDDI_WIN2KSP1, , oder WINVER >= 0x0501) handelt, _WIN32_WINNT >= 0x0501wird die FIXED_INFO_WIN2KSP1-Struktur typisiert. Beim Kompilieren einer Anwendung, wenn die Zielplattform nicht Windows 2000 mit SP1 und höher ist, ist die FIXED_INFO-Struktur nicht definiert.

Die GetNetworkParams-Funktion und die FIXED_INFO-Struktur werden unter Windows 98 und höher unterstützt. Um jedoch eine Anwendung für eine Zielplattform vor Windows 2000 mit Service Pack 1 (SP1) zu erstellen, muss eine frühere Version des Platform Software Development Kit (SDK) verwendet werden.

Beispiele

Im folgenden Beispiel werden die Netzwerkparameter für den lokalen Computer abgerufen und Informationen aus den zurückgegebenen Daten ausgegeben.

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


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

FIXED_INFO

IP-Hilfsfunktionsreferenz

IP-Hilfsprogramm-Startseite