Что означает код NTSTATUS 0xC0000496 (STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL)?

 
Предыдущий Следующий
STATUS_PNP_DEVICE_CONFIGURATION_PENDING STATUS_PACKAGE_NOT_AVAILABLE

STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL

Предоставленный буфер имени не вмещает оставшуюся подсказку устройства

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

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

  • Используйте возвращённый требуемый размер, если API его предоставляет, затем выделите новый буфер и повторите вызов.
  • Уточните, включает ли длина завершающий нулевой символ.
  • Для имён Unicode отличайте число байтов от числа WCHAR .
  • Сохраняйте курсор перечисления только в том случае, если API указывает, что повтор продолжается с той же позиции.

Почему фиксированные буферы не работают

Идентификаторы устройств и имена подсказок могут увеличиваться при включении префиксов пространства имён, идентификаторов экземпляров или компонентов шины. Фиксированный стековый буфер, работающий на одном компьютере, может обрезать данные на другом. Предпочитайте схему «запросить размер — затем получить данные» и устанавливайте отдельный разумный предел для повреждённых или враждебных данных.

Ссылки


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