GetComputerNameExA 함수(sysinfoapi.h)
로컬 컴퓨터와 연결된 NetBIOS 또는 DNS 이름을 검색합니다. 이름은 시스템이 레지스트리에서 읽을 때 시스템 시작 시 설정됩니다.
통사론
BOOL GetComputerNameExA(
[in] COMPUTER_NAME_FORMAT NameType,
[out] LPSTR lpBuffer,
[in, out] LPDWORD nSize
);
매개 변수
[in] NameType
검색할 이름의 형식입니다. 이 매개 변수는 COMPUTER_NAME_FORMAT 열거형 형식의 값입니다. 다음 표에서는 추가 정보를 제공합니다.
[out] lpBuffer
컴퓨터 이름 또는 클러스터 가상 서버 이름을 받는 버퍼에 대한 포인터입니다.
DNS에서 더 긴 이름을 허용하므로 이름의 길이가 MAX_COMPUTERNAME_LENGTH 문자보다 클 수 있습니다. 이 버퍼가 충분히 큰지 확인하려면 이 매개 변수를 NULL
[in, out] nSize
입력에서 버퍼의 크기를 TCHAR지정합니다. 출력 시 종료 null 문자를 포함하지 않고 대상 버퍼에 복사된 TCHAR 수를 받습니다.
버퍼가 너무 작으면 함수가 실패하고 GetLastError
반환 값
함수가 성공하면 반환 값은 0이 아닌 값입니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 얻으려면 GetLastError호출합니다. 가능한 값은 다음과 같습니다.
반환 코드 | 묘사 |
---|---|
|
lpBuffer 버퍼가 너무 작습니다. lpnSize 매개 변수에는 이름을 받는 데 필요한 바이트 수가 포함됩니다. |
발언
로컬 컴퓨터에 대해 그룹 정책이 설정되지 않은 경우 GetComputerNameEx 함수는 시스템 시작 시 설정된 NetBIOS 또는 DNS 이름을 검색합니다. 그룹 정책이 설정되면 함수는 그룹 정책에 의해 설정된 기본 도메인 이름을 반환합니다. SetComputerName 또는 SetComputerNameEx 함수의 이름 변경 내용은 사용자가 컴퓨터를 다시 시작할 때까지 적용되지 않습니다.
로컬 컴퓨터가 DNS 이름을 사용하도록 구성되지 않은 경우 GetComputerNameEx DNS 정보를 반환하지 않습니다. 이 작업을 수행하도록 컴퓨터를 구성하려면 운영 체제 도움말에 설명된 단계를 수행하고 컴퓨터의 기본 DNS 접미사를 변경한 다음 컴퓨터를 다시 시작합니다.
로컬 컴퓨터가 클러스터의 노드인 경우 이 함수의 동작이 영향을 받을 수 있습니다. 자세한 내용은 ResUtilGetEnvironmentWithNetName 및 UseNetworkName참조하세요.
컴퓨터의 FQDN이 도메인의 FQDN과 일치하지 않는 다른 DNS 레이아웃을 사용하는 환경에서 작업하는 경우 LsaQueryInformationPolicy 대신 사용합니다.
이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 매크로를 0x0500 이상으로 정의합니다. 자세한 내용은 Windows 헤더사용하는
예제
#define _WIN32_WINNT 0x0500
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
void _tmain(void)
{
TCHAR buffer[256] = TEXT("");
TCHAR szDescription[8][32] = {TEXT("NetBIOS"),
TEXT("DNS hostname"),
TEXT("DNS domain"),
TEXT("DNS fully-qualified"),
TEXT("Physical NetBIOS"),
TEXT("Physical DNS hostname"),
TEXT("Physical DNS domain"),
TEXT("Physical DNS fully-qualified")};
int cnf = 0;
DWORD dwSize = _countof(buffer);
for (cnf = 0; cnf < ComputerNameMax; cnf++)
{
if (!GetComputerNameEx((COMPUTER_NAME_FORMAT)cnf, buffer, &dwSize))
{
_tprintf(TEXT("GetComputerNameEx failed (%d)\n"), GetLastError());
return;
}
else _tprintf(TEXT("%s: %s\n"), szDescription[cnf], buffer);
dwSize = _countof(buffer);
ZeroMemory(buffer, dwSize);
}
}
메모
sysinfoapi.h 헤더는 GETComputerNameEx를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | sysinfoapi.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |
참고 항목
컴퓨터 이름
GetComputerName
ResUtilGetEnvironmentWithNetName
ResUtilSetResourceServiceEnvironment
ResUtilSetResourceServiceStartParameters
SetComputerName
SetComputerNameEx