-1

MSDN のドキュメントによると、トランザクション NTFS では、書き込みのためにファイルを開くときにブロックすることはできないようです。代わりに、開く操作は ERROR_SHARING_VIOLATION で失敗します。代わりに書き込みをブロックしたいのですが、どうすればいいですか?

理想的には、ソリューションに次のプロパティが必要です。

  1. ネットワーク共有上で動作します (ローカルの名前付きミューテックス ハンドルはありません)。
  2. 所有しているプロセスが停止した場合の自動解放
  3. 別のファイルは必要ありません (名前付きストリームは問題ありません)
  4. ロック待機にタイムアウトを設定できるようにします (または、別のスレッドまたは APC からキャンセルできるようにします)。

これらのプロパティを持つトランザクション NTFS で動作するロック方法の経験がある人はいますか?

4

1 に答える 1

2

あなたが求めていることを正確に理解しているかどうかはわかりません。TXF は、SMB 共有間では機能しません。

私のひざまずく提案は、TXFを使用する前にこれにファイルを使用している場合、非トランザクションモードでこれにファイルを使用し続けることができるということです...

参考までに、TXF がこれらのトランザクション ロックの競合に失敗する理由は、アプリケーションがデッドロックを回避できるようにするためです。

于 2010-08-27T13:56:18.313 に答える