DnsValidateName_UTF8 関数 (windns.h)

DnsValidateName 関数は、指定した DNS 名の状態を検証します。 多くの DNS 関数と同様に、 DnsValidateName 関数の種類は、異なる文字エンコードを容易にするために複数の形式で実装されています。 関連する文字エンコードに基づいて、次のいずれかの関数を使用します。

  • DnsValidateName_A (ANSI エンコードの_A)
  • DnsValidateName_W (Unicode エンコードの_W)
  • DnsValidateName_UTF8 (UTF-8 エンコードの_UTF8)

構文

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

パラメーター

[in] pszName

調べる DNS 名を表す文字列へのポインター。

[in] Format

調べる名前の形式を指定するDNS_NAME_FORMAT値。

戻り値

DnsValidateName 関数には、次の戻り値があります。

注釈

コンピューター ホスト (単一ラベル) の状態を確認するには、 DnsValidateName 関数の種類と DnsNameHostnameLabelFormat で使用します。

DnsValidateName 関数は、特定の DNS 名を持つエラーが存在するかどうかを判断するときに進行して機能し、最初のエラーを見つけたときに を返します。 したがって、複数の異なるエラーを含む DNS 名は、最初のエラーが発生したと報告され、2 番目のエラーを見つけるために修正して再送信できます。

DnsValidateName 関数は、次のようにエラーを検索します。

  1. DNS 名が次の場合 ERROR_INVALID_NAME を返します。
    • 255 オクテットを超えています。
    • 63 オクテットより長いラベルを含みます。
    • 2 つ以上の連続するドットを含みます。
    • ドット (.) で始まります。
    • 名前が DnsNameDomainLabel または DnsNameHostnameLabel に設定された 形式 で送信された場合は、ドット (.) が含まれます。
  2. 次に、Format が DnsNameDomainLabel または DnsNameDomain に設定されていない限り、完全な DNS 名が数字 (0 から 9) のみで構成されている場合、または DNS 名の最初のラベルが数字 (0 から 9) のみで構成されている場合、DnsValidateNameはDNS_ERROR_NUMERIC_NAMEを返します。
  3. 次に、 DNSValidateName は 、DNS 名が次の場合にDNS_ERROR_NON_RFC_NAMEを返します。
    • 少なくとも 1 つの拡張文字または Unicode 文字が含まれます。Windows 8以降に注意してください。国際ドメイン名 (IDN) エンコードが有効になっている場合、DnsValidateName_Wはエラーを返しません。
    • アンダースコア (_) を含みます。アンダースコアがラベルの最初の文字でない限り、名前に Format が DnsNameSrvRecord に設定された状態で送信されます。
  4. 次に、 DNSValidateName は 、DNS 名 が次の場合にDNS_ERROR_INVALID_NAME_CHAR を返します。
    • スペースを含みます。
    • 次のいずれかの無効な文字が含まれます: { | } ~ [ \ ] ^ ' : ; < = > ? & @ ! " # $ % ^ ` ( ) + / ,
    • 複数ラベル付き名前の最初のラベルである場合を除き、DnsNameWildcardFormat を設定して送信されるアスタリスク (*) を含みます。
メモDnsValidateName がDNS_ERROR_NON_RFC_NAMEを返す場合、すべての DNS サーバーが名前を受け入れるわけではないという警告としてエラーを処理する必要があります。 このエラーが発生した場合、DNS サーバーは、適切に構成されている場合は送信された名前を受け入れます (既定の構成 では、DNS_ERROR_NON_RFC_NAME が返されるときに送信された名前を受け入れます)、他の DNS サーバー ソフトウェアでは受け入れられない場合があることに注意してください。 Windows DNS サーバーは 、NON_RFC_NAMESを処理します。

DnsValidateName が次のいずれかのエラーを返す場合、pszName は無効なホスト名として処理する必要があります。

DNS_ERROR_NUMERIC_NAME
DNS_ERROR_INVALID_NAME_CHAR
ERROR_INVALID_NAME
 

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー windns.h
Library Dnsapi.lib
[DLL] Dnsapi.dll

こちらもご覧ください

DNS_NAME_FORMAT

DNS_RECORD

DnsNameCompare

DnsQuery