다음을 통해 공유


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

로컬 컴퓨터에서 사용하는 DNS 서버 집합을 지정하는 IP_ADDR_STRING 구조체의 연결된 목록입니다.

NodeType

형식: UINT

로컬 컴퓨터의 노드 형식입니다. 이러한 값은 Iptypes.h 헤더 파일에 정의되어 있습니다.

노드 형식 의미
BROADCAST_NODETYPE
0x0001
브로드캐스트 노드 형식입니다.
PEER_TO_PEER_NODETYPE
0x0002
피어 투 피어 노드 형식입니다.
MIXED_NODETYPE
0x0004
혼합 노드 형식입니다.
HYBRID_NODETYPE
0x0008
하이브리드 nodetype입니다.

ScopeId[MAX_SCOPE_ID_LEN + 4]

형식: char[MAX_SCOPE_ID_LEN + 4]

DHCP scope 이름입니다.

EnableRouting

형식: UINT

로컬 컴퓨터에서 라우팅을 사용할 수 있는지 여부를 지정하는 부울 값입니다.

EnableProxy

형식: UINT

로컬 컴퓨터가 ARP 프록시 역할을 하는지 여부를 지정하는 부울 값입니다.

EnableDns

형식: UINT

로컬 컴퓨터에서 DNS를 사용할 수 있는지 여부를 지정하는 부울 값입니다.

설명

FIXED_INFO 구조체는 GetNetworkParams 함수에 의해 검색됩니다.

Microsoft SDK(Windows 소프트웨어 개발 키트)에서 FIXED_INFO_WIN2KSP1 구조가 정의됩니다. 대상 플랫폼이 WINDOWS 2000 SP1(서비스 팩 1) 이상(NTDDI_VERSION >= NTDDI_WIN2KSP1, _WIN32_WINNT >= 0x0501또는 WINVER >= 0x0501)인 경우 애플리케이션을 컴파일할 때 FIXED_INFO_WIN2KSP1 구조체는 FIXED_INFO 구조체에 형식 정의됩니다. 대상 플랫폼이 SP1 이상의 Windows 2000이 아닌 경우 애플리케이션을 컴파일하는 경우 FIXED_INFO 구조가 정의되지 않습니다.

GetNetworkParams 함수 및 FIXED_INFO 구조는 Windows 98 이상에서 지원됩니다. 그러나 SP1(서비스 팩 1)을 사용하여 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 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 iptypes.h(Iphlpapi.h 포함)

참고 항목

GetNetworkParams

IP 도우미 시작 페이지

IP 도우미 구조

IP_ADDR_STRING