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