Partager via


structure DNS_QUERY_RAW_RESULT (windns.h)

Important

Certaines informations concernent un produit de préversion qui peut être sensiblement modifié avant sa publication commerciale. Microsoft n’offre aucune garantie, expresse ou implicite, en ce qui concerne les informations fournies ici.

Représente un résultat de requête brut DNS (voir DNS_QUERY_RAW_COMPLETION_ROUTINE).

Syntaxe

typedef struct _DNS_QUERY_RAW_RESULT {
  ULONG       version;
  DNS_STATUS  queryStatus;
  ULONG64     queryOptions;
  ULONG64     queryRawOptions;
  ULONG64     responseFlags;
  ULONG       queryRawResponseSize;
  BYTE        *queryRawResponse;
  PDNS_RECORD queryRecords;
  ULONG       protocol;
  union {
    SOCKADDR_INET sourceAddr;
    CHAR          maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH];
  };
} DNS_QUERY_RAW_RESULT;

Membres

version

Type : ULONG

Version de cette structure. Cela correspond à ce qui a été défini dans DNS_QUERY_RAW_REQUEST ::resultsVersion. Actuellement, seul DNS_QUERY_RAW_RESULT_VERSION1 (0x1) existe.

queryStatus

Type : DNS_STATUS

État de la requête.

queryOptions

Type : ULONG64

Options de requête utilisées dans cette requête. En raison de la configuration du système, celles-ci peuvent être différentes des options de requête que vous avez fournies dans la demande. Les options actuelles sont définies dans options de requête DNS.

queryRawOptions

Type : ULONG64

Options supplémentaires appliquées à la requête brute. Voir également DNS_QUERY_RAW_REQUEST ::queryRawOptions.

responseFlags

Type : ULONG64

Indicateurs supplémentaires sur la réponse de la requête. Actuellement, aucun n’est spécifié.

queryRawResponseSize

Type : ULONG

Nombre d’octets dans la mémoire tampon de réponse brute DNS pointée par queryRawResponse.

queryRawResponse

Type : * BYTE

Pointeur vers une mémoire tampon contenant la représentation filaire de la réponse de requête DNS , un en-tête de 12 octets suivi d’un nombre variable d’enregistrements. Cette mémoire tampon est de taille queryRawResponseSize octets.

Le pointeur peut ou non être valide en fonction de queryStatus. Les erreurs DNS internes produisent un état d’erreur et un pointeur NULL, mais les réponses négatives du serveur peuvent produire l’état d’erreur et un pointeur valide. Si queryStatus est ERROR_SUCCESS, le pointeur est valide.

queryRecords

Type : PDNS_RECORD

Pointeur vers une structure DNS_RECORD. Cela contient les mêmes enregistrements que dans queryRawResponse, mais analysés dans un format de structure.

Ce pointeur est valide de la même manière que queryRawResponse, où il dépend de la valeur queryStatus.

queryRecords contient les mêmes enregistrements que dans queryRawResponse, mais analysé dans un format de structure. Toutefois, s’il existe un nouveau type d’enregistrement DNS dans la réponse qui n’est pas connue par l’implémentation, cela ne sera pas présent dans queryRecords; mais il sera présent dans queryRawResponse.

protocol

Type : ULONG

Protocole DNS utilisé pour la réponse de requête. Cela ne correspond pas nécessairement au protocole dans DNS_QUERY_RAW_REQUEST, car le système DNS a peut-être modifié le protocole de requête sortant en fonction de la configuration. La réponse de requête sera modifiée, si nécessaire, pour correspondre au protocole dans la requête afin que le comportement vu par l’appelant soit transparent. Une valeur de DNS_PROTOCOL_NO_WIRE indique que les enregistrements de résultats et les données ont été produits en interne et que le système DNS n’a pas envoyé de requête sur le câble.

Les valeurs possibles sont les suivantes :

  • DNS_PROTOCOL_UNSPECIFIED (0x0). La requête s’est terminée sans recevoir de réponse ; par exemple dans une annulation.
  • DNS_PROTOCOL_UDP (0x1).
  • DNS_PROTOCOL_TCP (0x2).
  • DNS_PROTOCOL_DOH (0x3).
  • DNS_PROTOCOL_DOT (0x4).
  • DNS_PROTOCOL_NO_WIRE (0x5). La requête s’est terminée en ligne ; par exemple, avec des enregistrements du cache.

sourceAddr

Type : SOCKADDR_INET

Adresse de la source de la réponse brute DNS.

maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]

Type : char[]

Adresse de la source de la réponse brute DNS. Vous pouvez utiliser le tableau maxSa dans le code qui n’a pas le type SOCKADDR_INET défini.

Exigences

Exigence Valeur
d’en-tête windns.h