| Предыдущий | Следующий |
| STATUS_INVALID_LOCK_SEQUENCE | STATUS_INVALID_FILE_FOR_SECTION |
STATUS_INVALID_VIEW_SIZE
Представление не помещается внутри секции
Секция имеет максимальный размер, заданный при создании. Каждое представление выбирает смещение и длину внутри этого объекта. Округлённое смещение и запрошенная длина не должны выходить за секцию, а правила нулевого размера зависят от API отображения и оставшейся части файла.
Выполняйте расчёты 64-разрядными значениями и проверяйте сумму смещения и длины до вызова. Размер, выглядящий допустимым до выравнивания, может выйти за секцию после округления смещения вниз до гранулярности выделения и добавления префиксной дельты. Также повторно проверьте размер базового файла, если другой компонент способен его усечь.
Что проверить
- Запишите максимальный размер секции, размер файла, смещение представления, запрошенную длину и дельту выравнивания.
- Выявляйте целочисленное переполнение при сложении смещения и длины.
- Убедитесь, что базовый файл не был усечён или заменён между созданием секции и отображением.
Ссылки
- Microsoft: отображение файлов
- Microsoft: сопоставление представления с заданного смещения файла
- Microsoft: MapViewOfFile
- Тесты ReactOS: поведение отображённых секций
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.
