Bagikan melalui


Fungsi GetNetworkParams (iphlpapi.h)

Fungsi GetNetworkParams mengambil parameter jaringan untuk komputer lokal.

Sintaks

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

Parameter

[out] pFixedInfo

Penunjuk ke buffer yang berisi struktur FIXED_INFO yang menerima parameter jaringan untuk komputer lokal, jika fungsi berhasil. Buffer ini harus dialokasikan oleh pemanggil sebelum memanggil fungsi GetNetworkParams .

[in] pOutBufLen

Penunjuk ke variabel ULONG yang menentukan ukuran struktur FIXED_INFO . Jika ukuran ini tidak cukup untuk menyimpan informasi, GetNetworkParams mengisi variabel ini dengan ukuran yang diperlukan, dan mengembalikan kode kesalahan ERROR_BUFFER_OVERFLOW.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS.

Jika fungsi gagal, nilai yang dikembalikan adalah salah satu kode kesalahan berikut.

Menampilkan kode Deskripsi
ERROR_BUFFER_OVERFLOW
Buffer untuk menerima informasi parameter jaringan terlalu kecil. Nilai ini dikembalikan jika parameter pOutBufLen terlalu kecil untuk menyimpan informasi parameter jaringan atau parameter pFixedInfo adalah penunjuk NULL . Ketika kode kesalahan ini dikembalikan, parameter pOutBufLen menunjuk ke ukuran buffer yang diperlukan.
ERROR_INVALID_PARAMETER
Parameter yang tidak valid diteruskan ke fungsi. Kesalahan ini dikembalikan jika parameter pOutBufLen adalah penunjuk NULL , proses panggilan tidak memiliki akses baca/tulis ke memori yang ditujukan oleh pOutBufLen, atau proses panggilan tidak memiliki akses tulis ke memori yang diacu oleh parameter pFixedInfo .
ERROR_NO_DATA
Tidak ada informasi parameter jaringan untuk komputer lokal.
ERROR_NOT_SUPPORTED
Fungsi GetNetworkParams tidak didukung oleh sistem operasi yang berjalan di komputer lokal.
Lainnya
Jika fungsi gagal, gunakan FormatMessage untuk mendapatkan string pesan untuk kesalahan yang dikembalikan.

Keterangan

Fungsi GetNetworkParams digunakan untuk mengambil parameter jaringan untuk komputer lokal. Parameter jaringan dikembalikan dalam struktur FIXED_INFO . Memori untuk struktur FIXED_INFO harus dialokasikan oleh aplikasi. Adalah tanggung jawab aplikasi untuk membebaskan memori ini ketika tidak lagi diperlukan.

Dalam Kit Pengembangan Perangkat Lunak (SDK) Microsoft Windows, struktur FIXED_INFO_WIN2KSP1 ditentukan. Saat mengkompilasi aplikasi jika platform target adalah Windows 2000 dengan Paket Layanan 1 (SP1) dan yang lebih baru (NTDDI_VERSION >= NTDDI_WIN2KSP1, , _WIN32_WINNT >= 0x0501atau WINVER >= 0x0501), struktur FIXED_INFO_WIN2KSP1 diketik ke struktur FIXED_INFO . Saat mengkompilasi aplikasi jika platform target bukan Windows 2000 dengan SP1 dan yang lebih baru, struktur FIXED_INFO tidak ditentukan.

Fungsi GetNetworkParams dan struktur FIXED_INFO didukung pada Windows 98dan yang lebih baru. Tetapi untuk membangun aplikasi untuk platform target yang lebih lama dari Windows 2000 dengan Paket Layanan 1 (SP1), versi yang lebih lama dari Platform Software Development Kit (SDK) harus digunakan.

Contoh

Contoh berikut mengambil parameter jaringan untuk komputer lokal dan mencetak informasi dari data yang dikembalikan.

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


Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows 2000 Server [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header iphlpapi.h
Pustaka Iphlpapi.lib
DLL Iphlpapi.dll

Lihat juga

FIXED_INFO

Referensi Fungsi Pembantu IP

Halaman Mulai Pembantu IP