| Предыдущий | Следующий |
| STATUS_OBJECT_PATH_SYNTAX_BAD | STATUS_DATA_LATE_ERROR |
STATUS_DATA_OVERRUN
Устройство передало больше данных, чем мог принять запрос
Переполнение данных возникает, когда устройство, контроллер или протокол передаёт больше байтов, чем вмещает выделенная передача либо ожидаемая длина записи. Для последовательных устройств это может быть связано с переменным размером блоков; на последовательных или накопительных путях причиной может быть неверная длина буфера либо повреждённые метаданные команды.
Зафиксируйте как запрошенный, так и сообщённый размер передачи. Молчаливое усечение может нарушить синхронизацию записей или отбросить конечные данные. Прежде чем увеличивать буфер, проверьте режим блоков, размер сектора, отображение scatter-gather и предположения драйвера, поскольку увеличенная передача сама может быть ошибочной.
Что проверить
- Запишите ожидаемую длину, фактический объём передачи, остаточный счётчик и блочный режим устройства.
- Проверьте дескрипторы команд и отображения буферов на каждом уровне драйверов.
- Сохраняйте границы записей и не считайте молчаливое усечение успешным результатом.
Ссылки
- Microsoft: интерфейсы драйверов хранения Windows
- Seagate: справочник команд SCSI
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.