| Предыдущий | Следующий |
| ERROR_CRC | ERROR_SEEK |
ERROR_BAD_LENGTH
Переданная длина не соответствует операции
ERROR_BAD_LENGTH возвращается, когда программа отправляет команду, объявленный размер которой недопустим для принимающего API, устройства или структуры. Это может выявить смешение байтов и элементов, неправильную упаковку, усечённые запросы или использование версии структуры, не поддерживаемой драйвером.
Точки проверки
- Сравните размеры входного и выходного буферов с точным прототипом функции.
- Применяйте
sizeofк объекту структуры, а не к указателю. - Проверьте поля, зависящие от архитектуры, и явные директивы упаковки.
- Защитите сложения и умножения, используемые при вычислении размера переменной полезной нагрузки.
Восстановление
Заново сформируйте запрос с документированным размером и инициализируйте поле длины структуры, если оно предусмотрено. Не увеличивайте буфер вслепую: некоторые интерфейсы требуют точной длины, а не минимальной. Если ошибка возникает только в одной версии Windows, проверьте контракт версионируемой структуры.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.