Поделиться через


Функция DnsHostnameToComputerNameA (winbase.h)

Преобразует имя узла в стиле DNS в имя компьютера в стиле NetBIOS.

Синтаксис

BOOL DnsHostnameToComputerNameA(
  [in]      LPCSTR  Hostname,
  [out]     LPSTR   ComputerName,
  [in, out] LPDWORD nSize
);

Параметры

[in] Hostname

DNS-имя. Если DNS-имя не является допустимым, переводимым именем, функция завершается ошибкой. Дополнительные сведения см. в именах компьютеров.

[out] ComputerName

Указатель на буфер, получающий имя компьютера. Размер буфера должен быть достаточно большим, чтобы содержать MAX_COMPUTERNAME_LENGTH + 1 символов.

[in, out] nSize

При входных данных указывает размер буфера в TCHARs. При выходе получает количество TCHARs скопировано в целевой буфер, не включая завершающий символ NULL.

Если буфер слишком мал, функция завершается ошибкой, GetLastError возвращает ERROR_MORE_DATA, а nSize получает требуемый размер буфера, не включая завершающийся символ NULL.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение является ненулевое значение.

Если функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError. Возможные значения включают следующие значения.

Возвращаемый код Описание
ERROR_MORE_DATA
Буфер ComputerName слишком мал. Параметр nSize содержит количество байтов, необходимых для получения имени.

Замечания

Эта функция выполняет текстовое сопоставление имени. Это соглашение ограничивает имена компьютеров общим подмножеством имен. (В частности, левая метка DNS-имени усечена до 15 байт символов OEM.) Поэтому не используйте эту функцию для преобразования DNS-имени домена в доменное имя NetBIOS. Для доменных имен отсутствует текстовое сопоставление.

Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0500 или более поздней версии. Дополнительные сведения см. в разделе Использование заголовков Windows.

Заметка

Заголовок winbase.h определяет DnsHostnameToComputerName как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winbase.h (включая Windows.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

GetComputerNameEx

SetComputerNameEx

системные информационные функции