Что означает код ошибки Windows 9506 (DNS_REQUEST_PENDING)?

 
Предыдущий Следующий
DNS_ERROR_UNSECURE_PACKET DNS_ERROR_INVALID_TYPE

DNS_REQUEST_PENDING

Ожидающий запрос не является ошибкой

DNS_REQUEST_PENDING — ожидаемый немедленный результат, когда DnsQueryEx завершит работу асинхронно. В этот момент окончательные DNS-записи ещё недоступны. Процедура завершения получает итоговый статус и список результатов: успех, отсутствие записей, RCODE, отмену или другую ошибку.

Главная проблема реализации — жизненный цикл. Microsoft указывает, что структуры результата запроса и отмены должны оставаться действительными до вызова callback. Освобождение контекста на стеке, повторное использование объекта результата для другого запроса или уничтожение владельца при отмене могут превратить обычное ожидание в use-after-free или двойное завершение.

Правильная обработка

  • Сохраняйте контекст запроса, хранилище результата, состояние callback и дескриптор отмены до завершения.
  • Обеспечьте, чтобы обычное завершение и отмена сходились в одном пути освобождения владения.
  • Читайте записи только после callback и освобождайте возвращённые списки документированной функцией DNS API.
  • Не отправляйте немедленный дубликат только потому, что первый вызов вернул pending; при необходимости применяйте deadline уровня приложения.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.