структура DNS_QUERY_RAW_RESULT (windns.h)
Важный
Некоторые сведения относятся к предварительному продукту, который может быть существенно изменен до его коммерческого выпуска. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь.
Представляет результат необработанного запроса DNS (см. DNS_QUERY_RAW_COMPLETION_ROUTINE).
Синтаксис
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;
Члены
version
Тип: ULONG
Версия этой структуры. Это соответствует тому, что было задано в DNS_QUERY_RAW_REQUEST::resultsVersion. В настоящее время существует только DNS_QUERY_RAW_RESULT_VERSION1 (0x1).
queryStatus
Тип: DNS_STATUS
Состояние запроса.
queryOptions
Тип: ULONG64
Параметры запроса, используемые в этом запросе. Из-за конфигурации системы они могут отличаться от параметров запроса, предоставленных в запросе. Текущие параметры определены в параметрах запроса DNS .
queryRawOptions
Тип: ULONG64
Дополнительные параметры, примененные к необработанным запросам. См. также DNS_QUERY_RAW_REQUEST::queryRawOptions.
responseFlags
Тип: ULONG64
Дополнительные флаги о ответе запроса. В настоящее время нет.
queryRawResponseSize
Тип: ULONG
Количество байтов в буфере необработанных ответов DNS, на которое указывает queryRawResponse.
queryRawResponse
Тип: BYTE*
Указатель на буфер, содержащий проводное представление ответа DNS-запроса— заголовок 12-байтов, за которым следует переменное число записей. Этот буфер имеет размер queryRawResponseSize байт.
Указатель может быть допустимым в зависимости от queryStatus. Внутренние ошибки DNS создают состояние ошибки и указатель NULL
, но отрицательные ответы сервера могут привести к возникновению ошибки и допустимому указателю. Если запросStatus ERROR_SUCCESS, указатель действителен.
queryRecords
Тип: PDNS_RECORD
Указатель на структуру DNS_RECORD. Это содержит те же записи, что и в queryRawResponse, но анализируется в формате структуры.
Этот указатель действителен таким же образом, как queryRawResponse, где он зависит от значения queryStatus.
queryRecords содержит те же записи, что и в queryRawResponse, но анализируется в формате структуры. Однако если в ответе, который не известен реализацией, существует новый тип записи DNS, то он не будет присутствовать в запросах; но он будет присутствовать в queryRawResponse.
protocol
Тип: ULONG
Протокол DNS, используемый для ответа запроса. Это не обязательно соответствует протоколу в DNS_QUERY_RAW_REQUEST, так как система DNS может изменить протокол исходящего запроса на основе конфигурации. При необходимости ответ запроса будет изменен для сопоставления протокола в запросе, чтобы поведение вызывающего объекта было простым. Значение DNS_PROTOCOL_NO_WIRE указывает, что записи результатов и данные были созданы внутри системы DNS, а система DNS не отправляла запрос на провод.
Возможные значения:
- DNS_PROTOCOL_UNSPECIFIED (0x0). Запрос завершен без получения ответа; например, при отмене.
- DNS_PROTOCOL_UDP (0x1).
- DNS_PROTOCOL_TCP (0x2).
- DNS_PROTOCOL_DOH (0x3).
- DNS_PROTOCOL_DOT (0x4).
- DNS_PROTOCOL_NO_WIRE (0x5). Встроенный запрос; например, записи из кэша.
sourceAddr
Тип: SOCKADDR_INET
Адрес источника необработанного ответа DNS.
maxSa[DNS_ADDR_MAX_SOCKADDR_LENGTH]
Тип: CHAR[]
Адрес источника необработанного ответа DNS. Вы можете использовать массив maxSa в коде, который не имеет определенного типа SOCKADDR_INET.
Требования
Требование | Ценность |
---|---|
заголовка | windns.h |