Макрос DnsValidateName (windns.h)
Функция DnsValidateName проверяет состояние указанного DNS-имени. Как и многие другие функции DNS, тип функции DnsValidateName реализуется в нескольких формах для упрощения кодировки разных символов. В зависимости от используемой кодировки символов используйте одну из следующих функций:
- DnsValidateName_A (_A для кодирования ANSI)
- DnsValidateName_W (_W для кодировки Юникода)
- DnsValidateName_UTF8 (_UTF8 для кодировки UTF-8)
Синтаксис
void DnsValidateName(
p,
f
);
Параметры
p
TBD
f
TBD
Возвращаемое значение
None
Remarks
Чтобы проверить состояние узла компьютера (одна метка), используйте тип функции DnsValidateName с DnsNameHostnameLabel в поле Формат.
Функция DnsValidateName работает в последовательности при определении наличия ошибки с заданным DNS-именем и возвращается при обнаружении первой ошибки. Таким образом, DNS-имя с несколькими различными ошибками можно сообщить как о первой ошибке, и его можно исправить и повторно отправить, только после этого найти вторую ошибку.
Функция DnsValidateName выполняет поиск ошибок следующим образом:
- Возвращает ERROR_INVALID_NAME , если DNS-имя:
- Длиннее 255 октетов.
- Содержит метку длиной более 63 октетов.
- Содержит две или более последовательных точек.
- Начинается с точки (.).
- Содержит точку (.), если имя отправлено с параметром Format , равным DnsNameDomainLabel или DnsNameHostnameLabel.
- Затем DnsValidateName возвращает DNS_ERROR_NUMERIC_NAME , если полное DNS-имя состоит только из числовых символов (0–9) или первая метка DNS-имени состоит только из числовых символов (0–9), если для параметра Format не задано значение DnsNameDomainLabel или DnsNameDomain.
- Затем DnsValidateName возвращает DNS_ERROR_NON_RFC_NAME, если DNS-имя:
- Содержит по крайней мере один расширенный символ или символ Юникода. Примечание Windows 8 или более поздней версии: DnsValidateName_W не возвращает ошибку, если включено кодирование международного доменного имени (IDN).
- Содержит символ подчеркивания (_), если только символ подчеркивания не является первым символом в метке, в имени, отправленном с параметром Формат DnsNameSrvRecord.
- Затем DnsValidateName возвращает DNS_ERROR_INVALID_NAME_CHAR , если DNS-имя:
- Содержит пробел.
- Содержит любой из следующих недопустимых символов: { | } ~ [ \ ] ^ ' : ; < = > ? & @ ! " # $ % ^ ` ( ) + / ,
- Содержит звездочку (*), если только звездочка не является первой меткой в имени с несколькими метками, отправленной с параметром Format ( DnsNameWildcard).
Если DnsValidateName возвращает любую из следующих ошибок, pszName следует обрабатывать как недопустимое имя узла:
- DNS_ERROR_NUMERIC_NAME
- DNS_ERROR_INVALID_NAME_CHAR
- ERROR_INVALID_NAME
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | windns.h |
Библиотека | Dnsapi.lib |
DLL | Dnsapi.dll |