共用方式為


FIXED_INFO_W2KSP1 結構 (iptypes.h)

FIXED_INFO結構包含電腦上所有介面上相同的資訊。

語法

typedef struct {
  char            HostName[MAX_HOSTNAME_LEN + 4];
  char            DomainName[MAX_DOMAIN_NAME_LEN + 4];
  PIP_ADDR_STRING CurrentDnsServer;
  IP_ADDR_STRING  DnsServerList;
  UINT            NodeType;
  char            ScopeId[MAX_SCOPE_ID_LEN + 4];
  UINT            EnableRouting;
  UINT            EnableProxy;
  UINT            EnableDns;
} FIXED_INFO_W2KSP1, *PFIXED_INFO_W2KSP1;

成員

HostName[MAX_HOSTNAME_LEN + 4]

類型: char[MAX_HOSTNAME_LEN + 4]

本機電腦的主機名稱。 這可能是完整主機名稱 (,包括已加入網域之電腦的網域) 。

DomainName[MAX_DOMAIN_NAME_LEN + 4]

類型: char[MAX_DOMAIN_NAME_LEN + 4]

本機電腦註冊所在的網域。

CurrentDnsServer

類型: PIP_ADDR_STRING

保留的。 使用 DnsServerList 成員取得本機電腦的 DNS 伺服器。

DnsServerList

類型: IP_ADDR_STRING

IP_ADDR_STRING結構的連結清單,指定本機電腦所使用的一組 DNS 伺服器。

NodeType

類型: UINT

本機電腦的節點類型。 這些值定義于 Iptypes.h 標頭檔中。

NodeType 意義
BROADCAST_NODETYPE
0x0001
廣播節點類型。
PEER_TO_PEER_NODETYPE
0x0002
對等節點類型。
MIXED_NODETYPE
0x0004
混合 nodetype。
HYBRID_NODETYPE
0x0008
混合式 nodetype。

ScopeId[MAX_SCOPE_ID_LEN + 4]

類型: char[MAX_SCOPE_ID_LEN + 4]

DHCP 範圍名稱。

EnableRouting

類型: UINT

布林值,指定是否在本機電腦上啟用路由。

EnableProxy

類型: UINT

布林值,指定本機電腦是否做為 ARP Proxy。

EnableDns

類型: UINT

布林值,指定本機電腦上是否啟用 DNS。

備註

GetNetworkParams函式會擷取FIXED_INFO結構。

在 Microsoft Windows 軟體發展工具組 (SDK) 中,會定義 FIXED_INFO_WIN2KSP1 結構。 如果目標平臺是 Windows 2000 搭配 Service Pack 1 (SP1) 和更新版本 NTDDI_VERSION >= NTDDI_WIN2KSP1 , (、 _WIN32_WINNT >= 0x0501WINVER >= 0x0501) 編譯應用程式時, FIXED_INFO_WIN2KSP1 結構會類型為 FIXED_INFO 結構。 如果目標平臺不是具有 SP1 和更新版本的 Windows 2000,則編譯應用程式時, 未定義FIXED_INFO 結構。

Windows 98 和更新版本支援 GetNetworkParams 函式和 FIXED_INFO 結構。 但是,若要使用 Service Pack 1 (SP1) ,為 Windows 2000 之前的目標平臺建置應用程式,必須使用舊版的平臺軟體發展工具組 (SDK) 。

範例

下列程式碼會擷取 FIXED_INFO 結構,其中包含本機電腦的網路設定資訊。 程式碼會從 結構列印選取的成員。

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

需求

   
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 iptypes.h (包含 Iphlpapi.h)

另請參閱

GetNetworkParams

IP 協助程式起始頁

IP 協助程式結構

IP_ADDR_STRING