次の方法で共有


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 関数の種類 DnsNameHostnameLabel形式で使用します。

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

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

  1. DNS 名が次の場合に ERROR_INVALID_NAME を返します。
    • 255 オクテットより長い。
    • 63 オクテットより長いラベルが含まれています。
    • 2 つ以上の連続するドットを含みます。
    • ドット (.) で始まります。
    • 名前が DnsNameDomainLabel または DnsNameHostnameLabel に設定 形式で送信された場合は、ドット (.) が含まれます。
  2. 次に、DnsValidateName は、完全な DNS 名が数字 (0 から 9) のみで構成されている場合、または DNS 名の最初のラベルが数字 (0 から 9) のみで構成されている場合、Format が DnsNameDomainLabel または DnsNameDomain に設定されていない場合に DNS_ERROR_NUMERIC_NAME を返します。
  3. 次に、DNSValidateName DNS 名の場合はDNS_ERROR_NON_RFC_NAMEが返されます。
    • 拡張文字または Unicode 文字を少なくとも 1 つ含みます。Windows 8 以降 注意: 国際ドメイン名 (IDN) エンコードが有効になっている場合、DnsValidateName_W はエラーを返しません。
    • アンダースコア (_) がラベルの先頭文字でない限り、名前に dnsNameSrvRecord に設定された 形式 で送信されます。
  4. 次に、DnsValidateName DNS 名の場合は DNS_ERROR_INVALID_NAME_CHAR が返されます。
    • スペースを含みます。
    • 次のいずれかの無効な文字が含まれています: { | } ~ [ \ ] ^ ' : ;< = > ? & @ ! " # $ % ^ ' ( ) + / ,
    • 複数ラベル付き名前の最初のラベルである場合を除き、アスタリスク (*) が含まれます。ただし、DnsNameWildcardに Format が設定
注意DnsValidateNameDNS_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 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー windns.h
ライブラリ Dnsapi.lib
DLL Dnsapi.dll

関連項目

DNS_NAME_FORMAT

DNS_RECORD

DnsNameCompare

DnsQuery