Блокировка записи блокировки с транзакционной NTFS - PullRequest
0 голосов
/ 14 августа 2010

Согласно документации MSDN , транзакционная NTFS не позволяет блокировать открытие файла для записи - вместо этого операция открытия завершается с ошибкой ERROR_SHARING_VIOLATION.Вместо этого я хотел бы заблокировать запись - как я могу это сделать?

В идеале мне бы хотелось, чтобы для решения были заданы следующие свойства:

  1. Работает через общий сетевой ресурс (поэтомунет локальных именованных мьютекс-дескрипторов)
  2. Автоматическое освобождение, если умирает владелец процесса
  3. Не требует отдельного файла (именованные потоки в порядке)
  4. Разрешает ожидание блокировкиесть время ожидания (или может быть отменено из другого потока или APC)

Кто-нибудь имеет опыт работы с методом блокировки, который работает с транзакционной NTFS с этими свойствами?

1 Ответ

2 голосов
/ 27 августа 2010

Я не уверен, что точно понимаю, о чем вы спрашиваете.TXF не работает через акции SMB.

Мое предположение о том, что если вы используете файлы для этого перед использованием TXF, вы можете продолжать использовать файл для этого в нетранзакционном режиме ...

FYIПричина, по которой TXF не удается выполнить эти конфликты блокировки транзакций, заключается в том, чтобы помочь приложениям избежать взаимоблокировок.

...