| Предыдущий | Следующий |
| STATUS_PAGE_FAULT_DEMAND_ZERO | STATUS_PAGE_FAULT_GUARD_PAGE |
STATUS_PAGE_FAULT_COPY_ON_WRITE
Общая страница стала частной для записывающего процесса
Сопоставления copy-on-write позволяют процессам сначала совместно использовать физическое содержимое, защищая страницу от прямого изменения. Когда один процесс выполняет запись, диспетчер памяти выделяет частную страницу, копирует исходное содержимое, обновляет сопоставление процесса и возобновляет выполнение инструкции. Исходная общая страница остаётся неизменной для других сопоставлений.
Штатное описание в некоторых таблицах NTSTATUS ошибочно повторяет формулировку demand-zero, поэтому важны имя состояния и контекст страничной ошибки. Частые ошибки copy-on-write нормальны после создания процесса либо при изменении доступных для записи страниц образа и отображённых секций; они увеличивают частную фиксацию памяти и не означают повреждение файла.
Что проверить
- Изучите PTE или тип области и подтвердите, что действовала защита copy-on-write.
- Измерьте последующее увеличение частных зафиксированных страниц и рабочего набора процесса.
- До попытки убрать защиту найдите записи в общий образ, клонированные данные или данные отображённой секции.
Ссылки
- Microsoft: VirtualProtect
- Microsoft: отображение файлов в память
- Исходный код ReactOS: обработка страничных ошибок NT
- Открытые спецификации Microsoft: значения NTSTATUS
Нужно найти другой код? Найти другой код состояния или ошибки.