Freigeben über


DnsValidateName_W-Funktion (windns.h)

Die DnsValidateName-Funktion überprüft die status eines angegebenen DNS-Namens. Wie viele DNS-Funktionen wird auch der DnsValidateName-Funktionstyp in mehreren Formen implementiert, um eine unterschiedliche Zeichencodierung zu ermöglichen. Verwenden Sie basierend auf der betreffenden Zeichencodierung eine der folgenden Funktionen:

  • DnsValidateName_A (_A für DIE ANSI-Codierung)
  • DnsValidateName_W (_W für unicode-Codierung)
  • DnsValidateName_UTF8 (_UTF8 für UTF-8-Codierung)

Syntax

DNS_STATUS DnsValidateName_W(
  [in] PCWSTR          pszName,
  [in] DNS_NAME_FORMAT Format
);

Parameter

[in] pszName

Ein Zeiger auf eine Zeichenfolge, die den zu untersuchenden DNS-Namen darstellt.

[in] Format

Ein DNS_NAME_FORMAT Wert, der das Format des zu untersuchenden Namens angibt.

Rückgabewert

Die DnsValidateName-Funktion weist die folgenden möglichen Rückgabewerte auf:

Hinweise

Um die status des Computerhosts (einzelne Bezeichnung) zu überprüfen, verwenden Sie den Funktionstyp DnsValidateName mit DnsNameHostnameLabel im Format.

Die DnsValidateName-Funktion arbeitet in einem Fortschritt, wenn ermittelt wird, ob ein Fehler mit einem angegebenen DNS-Namen vorhanden ist, und gibt zurück, wenn der erste Fehler gefunden wird. Daher kann ein DNS-Name, der mehrere, unterschiedliche Fehler aufweist, als der erste Fehler gemeldet und korrigiert und erneut übermittelt werden, nur dann, um den zweiten Fehler zu finden.

Die DnsValidateName-Funktion sucht wie folgt nach Fehlern:

  1. Gibt ERROR_INVALID_NAME zurück, wenn der DNS-Name:
    • Ist länger als 255 Oktette.
    • Enthält eine Bezeichnung, die länger als 63 Oktette ist.
    • Enthält mindestens zwei aufeinanderfolgende Punkte.
    • Beginnt mit einem Punkt (.).
    • Enthält einen Punkt (.), wenn der Name übermittelt wird, wobei Format auf DnsNameDomainLabel oder DnsNameHostnameLabel festgelegt ist.
  2. Als Nächstes gibt DnsValidateNameDNS_ERROR_NUMERIC_NAME zurück, wenn der vollständige DNS-Name nur aus numerischen Zeichen (0-9) oder die erste Bezeichnung des DNS-Namens nur aus numerischen Zeichen (0-9) besteht, es sei denn , Format ist auf DnsNameDomainLabel oder DnsNameDomain festgelegt.
  3. Dann gibt DnsValidateName DNS_ERROR_NON_RFC_NAME zurück, wenn der DNS-Name:
    • Enthält mindestens ein erweitertes Oder Unicode-Zeichen. Hinweis Windows 8 oder höher: DnsValidateName_W gibt keinen Fehler zurück, wenn die IDN-Codierung (International Domain Name) aktiviert ist.
    • Enthält unterstriche (_), es sei denn, der Unterstrich ist ein erstes Zeichen in einer Bezeichnung, im Namen, der mit Format auf DnsNameSrvRecord festgelegt ist.
  4. Als Nächstes gibt DnsValidateNameDNS_ERROR_INVALID_NAME_CHAR zurück, wenn der DNS-Name:
    • Enthält ein Leerzeichen.
    • Enthält eines der folgenden ungültigen Zeichen: { | } ~ [ \ ] ^ ' : ; < = ? > & @ ! " # $ % ^ ` ( ) + / ,
    • Enthält ein Sternchen (*), es sei denn, das Sternchen ist die erste Bezeichnung im mehrbeschrifteten Namen, der mit format auf DnsNameWildcard festgelegt ist.
Hinweis Wenn DnsValidateNameDNS_ERROR_NON_RFC_NAME zurückgibt, sollte der Fehler als Warnung behandelt werden, dass nicht alle DNS-Server den Namen akzeptieren. Wenn dieser Fehler empfangen wird, beachten Sie, dass der DNS-Server den übermittelten Namen akzeptiert, sofern er entsprechend konfiguriert ist (die Standardkonfiguration akzeptiert den Übermittelten Namen, wenn DNS_ERROR_NON_RFC_NAME zurückgegeben wird), andere DNS-Serversoftware jedoch möglicherweise nicht. Windows-DNS-Server verarbeiten NON_RFC_NAMES.

Wenn DnsValidateName einen der folgenden Fehler zurückgibt, sollte pszName als ungültiger Hostname behandelt werden:

DNS_ERROR_NUMERIC_NAME
DNS_ERROR_INVALID_NAME_CHAR
ERROR_INVALID_NAME
 

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile windns.h
Bibliothek Dnsapi.lib
DLL Dnsapi.dll

Weitere Informationen

DNS_NAME_FORMAT

DNS_RECORD

DnsNameCompare

DnsQuery