Share via


Função DnsValidateName_UTF8 (windns.h)

A função DnsValidateName valida o status de um nome DNS especificado. Como muitas funções DNS, o tipo de função DnsValidateName é implementado em várias formas para facilitar a codificação de caracteres diferente. Com base na codificação de caracteres envolvida, use uma das seguintes funções:

  • DnsValidateName_A (_A para codificação ANSI)
  • DnsValidateName_W (_W para codificação Unicode)
  • DnsValidateName_UTF8 (_UTF8 para codificação UTF-8)

Sintaxe

DNS_STATUS DnsValidateName_UTF8(
  [in] PCSTR           pszName,
  [in] DNS_NAME_FORMAT Format
);

Parâmetros

[in] pszName

Um ponteiro para uma cadeia de caracteres que representa o nome DNS a ser examinado.

[in] Format

Um valor DNS_NAME_FORMAT que especifica o formato do nome a ser examinado.

Retornar valor

A função DnsValidateName tem os seguintes valores retornados possíveis:

Comentários

Para verificar a status do Host do Computador (rótulo único), use o tipo de função DnsValidateName com DnsNameHostnameLabel em Format.

A função DnsValidateName funciona em uma progressão ao determinar se existe um erro com um determinado nome DNS e retorna ao encontrar seu primeiro erro. Portanto, um nome DNS que tem vários erros diferentes pode ser relatado como tendo o primeiro erro e pode ser corrigido e reenviado, somente então para localizar o segundo erro.

A função DnsValidateName pesquisa erros da seguinte maneira:

  1. Retorna ERROR_INVALID_NAME se o nome DNS:
    • Tem mais de 255 octetos.
    • Contém um rótulo com mais de 63 octetos.
    • Contém dois ou mais pontos consecutivos.
    • Começa com um ponto (.).
    • Contém um ponto (.) se o nome for enviado com Format definido como DnsNameDomainLabel ou DnsNameHostnameLabel.
  2. Em seguida, DnsValidateName retornará DNS_ERROR_NUMERIC_NAME se o nome DNS completo consistir apenas em caracteres numéricos (0-9) ou o primeiro rótulo do nome DNS consistir apenas em caracteres numéricos (0-9), a menos que Format esteja definido como DnsNameDomainLabel ou DnsNameDomain.
  3. Em seguida, DnsValidateName retornará DNS_ERROR_NON_RFC_NAME se o nome DNS:
    • Contém pelo menos um caractere estendido ou Unicode. Observação Windows 8 ou posterior: DnsValidateName_W não retornará um erro se a codificação de IDN (Nome de Domínio Internacional) estiver habilitada.
    • Contém sublinhado (_), a menos que o sublinhado seja um primeiro caractere em um rótulo, no nome, enviado com Formato definido como DnsNameSrvRecord.
  4. Em seguida, DnsValidateName retornará DNS_ERROR_INVALID_NAME_CHAR se o nome DNS:
    • Contém um espaço.
    • Contém qualquer um dos seguintes caracteres inválidos: { | } ~ [ \ ] ^ ' : ; < = > ? & @ ! " # $ % ^ ` ( ) + / ,
    • Contém um asterisco (*), a menos que o asterisco seja o primeiro rótulo no nome multi-rotulado, enviado com Format definido como DnsNameWildcard.
Nota Se DnsValidateName retornar DNS_ERROR_NON_RFC_NAME, o erro deverá ser tratado como um aviso de que nem todos os servidores DNS aceitarão o nome. Quando esse erro for recebido, observe que o Servidor DNS aceita o nome enviado, se configurado adequadamente (a configuração padrão aceita o nome como enviado quando DNS_ERROR_NON_RFC_NAME é retornado), mas outros softwares de servidor DNS podem não. Os servidores DNS do Windows lidam com NON_RFC_NAMES.

Se DnsValidateName retornar qualquer um dos seguintes erros, pszName deverá ser tratado como um nome de host inválido:

DNS_ERROR_NUMERIC_NAME
DNS_ERROR_INVALID_NAME_CHAR
ERROR_INVALID_NAME
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho windns.h
Biblioteca Dnsapi.lib
DLL Dnsapi.dll

Confira também

DNS_NAME_FORMAT

DNS_RECORD

DnsNameCompare

DnsQuery