| Предыдущий | Следующий |
| STATUS_INVALID_FILE_FOR_SECTION | STATUS_ACCESS_DENIED |
STATUS_ALREADY_COMMITTED
Целевые страницы уже имеют зафиксированное обеспечение
В обычных сценариях VirtualAlloc Windows, как правило, допускает повторную фиксацию уже зафиксированной страницы, однако нативные вызовы и специализированные тракты могут отклонить запрос, параметры или состояние которого предполагают незафиксированный диапазон. Поэтому статус следует интерпретировать с учётом точного API, флагов и типа области.
Не отменяйте фиксацию диапазона вслепую только ради успешного вызова: существующие зафиксированные страницы могут принадлежать другому распределителю или потоку. Запросите область и согласуйте владение. Если архитектура намеренно фиксирует память частями, сделайте переход состояния идемпотентным или сериализуйте его с метаданными распределителя.
Что следует проверить
- Зафиксируйте нативный или Win32 API, флаги выделения и выровненный по страницам диапазон.
- Используйте VirtualQuery для определения зафиксированных поддиапазонов и их базы выделения.
- Проверьте конкурирующие пути фиксации и учёт распределителя на повторные переходы состояния.
Ссылки
- Microsoft: VirtualAlloc
- Microsoft: резервирование и фиксация памяти
- Microsoft: VirtualQuery
- Исходный код ReactOS: диспетчер виртуальной памяти
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.