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
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
Nombre d’octets dans la mémoire tampon de réponse brute DNS pointée par queryRawResponse.
queryRawResponse
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
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 |