| Предыдущий | Следующий |
| STATUS_NOT_SNAPSHOT_VOLUME | STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION |
STATUS_NO_SAVEPOINT_WITH_OPEN_FILES
Открытые файлы препятствуют запрошенной операции с точкой сохранения
STATUS_NO_SAVEPOINT_WITH_OPEN_FILES означает, что TxF не может выполнить запрошенную операцию с точкой сохранения, пока в транзакции остаются открытые файлы. Точки сохранения изменяют границу отката, а открытые дескрипторы могут удерживать состояние, делающее такую границу небезопасной.
В прикладном коде обычно это проблема времени жизни дескрипторов. Перед установкой точки сохранения или откатом к ней закройте либо иным способом освободите дескрипторы, состояние которых будет затронуто.
Что следует проверить
- Транзакционные файловые дескрипторы, остающиеся открытыми при вызове операции с точкой сохранения.
- Дублированные или унаследованные дескрипторы либо дескрипторы, удерживаемые вспомогательными библиотеками.
- Отображённые в память секции, сохраняющие ссылку на файловый объект даже после прекращения обычного ввода-вывода.
- Не требуется ли коду более узкая область транзакции или меньше вложенных точек сохранения.
Полезное различие
Это ограничение относится именно к точке сохранения. Сама транзакция может оставаться пригодной, но TxF отклоняет данную операцию, пока не устранено состояние открытых файлов.
Ссылки
- Microsoft: обзор Transactional NTFS
- Microsoft: использование Transactional NTFS
- Microsoft: TXFS_SAVEPOINT_INFORMATION
- Microsoft: Kernel Transaction Manager
Нужно найти другой код? Найти другой код состояния или ошибки.