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

 
Предыдущий Следующий
WSA_QOS_EFLOWSPEC WSA_QOS_EFILTERSTYLE

WSA_QOS_EPROVSPECBUF

Длина ProviderSpecific и границы объектов должны описывать одну и ту же последовательность байтов

WSA_QOS_EPROVSPECBUF означает, что специфичная для поставщика часть структуры Winsock QOS недопустима целиком. Поле имеет тип WSABUF, поэтому важны и указатель, и число байтов; обычно указанные байты содержат цепочку объектов RSVP или управления трафиком, начинающуюся с QOS_OBJECT_HDR.

Убедитесь, что буфер остаётся действительным на протяжении всего вызова, его длина не включает постороннюю память в конце и каждый объект полностью помещается до объявленной границы. Нулевой указатель при ненулевой длине, усечённый заголовок, отсутствующий маркер конца или сериализация, зависящая от архитектуры, могут сделать последовательность нечитаемой. Сначала проверьте пустой буфер ProviderSpecific с корректными стандартными FLOWSPEC, затем добавляйте объекты по одному, чтобы определить первое повреждённое добавление.

Проверки на уровне буфера

  • Время жизни указателя WSABUF и длина.
  • Выравнивание первого объекта и наличие полного заголовка.
  • Сумма всех значений ObjectLength.
  • Маркер конца списка и отсутствие посторонних данных после него.

Ссылки


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