Поделиться через


структура 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