estructura DNS_QUERY_RAW_RESULT (windns.h)
Importante
Cierta información se relaciona con un producto de versión preliminar que puede modificarse sustancialmente antes de su lanzamiento comercial. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un resultado de consulta sin formato DNS (consulte DNS_QUERY_RAW_COMPLETION_ROUTINE).
Sintaxis
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;
Miembros
version
Tipo: ULONG
Versión de esta estructura. Esto coincide con lo que se estableció en DNS_QUERY_RAW_REQUEST::resultsVersion. Actualmente solo existe DNS_QUERY_RAW_RESULT_VERSION1 (0x1).
queryStatus
Tipo: DNS_STATUS
Estado de la consulta.
queryOptions
Tipo: ULONG64
Opciones de consulta que se usaron en esta consulta. Debido a la configuración del sistema, pueden ser diferentes de las opciones de consulta que proporcionó en la solicitud. Las opciones actuales se definen en las opciones de consulta dns.
queryRawOptions
Tipo: ULONG64
Opciones adicionales que se aplicaron a la consulta sin formato. Consulte también DNS_QUERY_RAW_REQUEST::queryRawOptions.
responseFlags
Tipo: ULONG64
Marcas adicionales sobre la respuesta de la consulta. Actualmente no se especifica ninguno.
queryRawResponseSize
Tipo: ULONG
Recuento de bytes en el búfer de respuesta sin formato DNS al que apunta queryRawResponse.
queryRawResponse
Tipo: BYTE*
Puntero a un búfer que contiene la representación de conexión de la respuesta de consulta DNS: un encabezado de 12 bytes seguido de un número variable de registros. Este búfer es de tamaño queryRawResponseSize bytes.
El puntero podría ser o no válido en función de queryStatus. Los errores dns internos generarían un estado de error y un NULL
puntero, pero las respuestas negativas del servidor podrían producir el estado de error y un puntero válido. Si queryStatus es ERROR_SUCCESS, el puntero es válido.
queryRecords
Tipo: PDNS_RECORD
Puntero a una estructura de DNS_RECORD . Contiene los mismos registros que en queryRawResponse, pero se analiza en un formato de estructura.
Este puntero es válido de la misma manera que queryRawResponse, donde depende del valor queryStatus .
queryRecords contiene los mismos registros que en queryRawResponse, pero se analiza en un formato de estructura. Sin embargo, si hay un nuevo tipo de registro DNS en la respuesta que no conoce la implementación, eso no estará presente en queryRecords; pero estará presente en queryRawResponse.
protocol
Tipo: ULONG
Protocolo DNS usado para la respuesta de consulta. Esto no coincide necesariamente con el protocolo en DNS_QUERY_RAW_REQUEST porque es posible que el sistema DNS haya cambiado el protocolo de consulta saliente en función de la configuración. La respuesta de consulta se modificará, si es necesario, para que coincida con el protocolo de la solicitud para que el comportamiento visto por el autor de la llamada sea sin problemas. Un valor de DNS_PROTOCOL_NO_WIRE indica que los registros de resultados y los datos se produjeron internamente y el sistema DNS no envió una consulta en la conexión.
Los valores posibles son:
- DNS_PROTOCOL_UNSPECIFIED (0x0). La consulta se completó sin recibir una respuesta; como en una cancelación.
- DNS_PROTOCOL_UDP (0x1).
- DNS_PROTOCOL_TCP (0x2).
- DNS_PROTOCOL_DOH (0x3).
- DNS_PROTOCOL_DOT (0x4).
- DNS_PROTOCOL_NO_WIRE (0x5). Consulta completada insertada; por ejemplo, con registros de la memoria caché.
sourceAddr
Tipo: SOCKADDR_INET
Dirección del origen de la respuesta sin procesar de DNS.
maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]
Tipo: CHAR[]
Dirección del origen de la respuesta sin procesar de DNS. Puede usar la matriz maxSa en el código que no tiene definido el tipo SOCKADDR_INET .
Requisitos
Requisito | Valor |
---|---|
Header | windns.h |