| Предыдущий | Следующий |
| 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 указывает, что повтор продолжается с той же позиции.
Почему фиксированные буферы не работают
Идентификаторы устройств и имена подсказок могут увеличиваться при включении префиксов пространства имён, идентификаторов экземпляров или компонентов шины. Фиксированный стековый буфер, работающий на одном компьютере, может обрезать данные на другом. Предпочитайте схему «запросить размер — затем получить данные» и устанавливайте отдельный разумный предел для повреждённых или враждебных данных.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.