Что означает код NTSTATUS 0xC0230016 (STATUS_NDIS_BUFFER_TOO_SHORT)?

 
Предыдущий Следующий
STATUS_NDIS_INVALID_DATA STATUS_NDIS_INVALID_OID

STATUS_NDIS_BUFFER_TOO_SHORT

Запросу требуется больший буфер, а не другая операция

STATUS_NDIS_BUFFER_TOO_SHORT является ошибкой ёмкости переданного буфера. Она часто возникает, когда запрос возвращает список переменной длины или вызывающая сторона предполагает фиксированный размер структуры для данных, фактическое число которых зависит от адаптера или текущей конфигурации.

Повторять запрос с учётом размера следует только после проверки контракта OID. Слепое выделение большого постоянного буфера может скрыть переполнение целых чисел, ошибку версии или владения и всё равно не сработать на будущем адаптере с большим результатом.

Данные, сужающие поиск

  • Считайте и запишите возвращённое драйвером или API значение необходимого числа байтов или требуемой длины.
  • Перед выделением повторного буфера проверьте арифметику числа элементов, размера элемента, выравнивания и длины заголовка.
  • Не путайте этот результат с STATUS_NDIS_INVALID_LENGTH, который может означать неправильный формат самого запроса.

Ссылки


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