0

FSCTL_LOCK_VOLUMEたとえば、デバイス内のファイルを一覧表示したり、デバイスからファイルを削除したりするなど、win32 api 制御コードによってデバイスをロックした後にデバイスを使用するにはどうすればよいですか。デバイスがロックされていないときは
すべてのファイルを一覧表示できますFindFirstFile()が、それらをロックすると、この 2 つの機能を使用できません。 たとえば、デバイスハンドルで動作するファイルをリストする代替機能はありますか? msdn は次のように述べています。FindNextFile()

ロックされたボリュームには、ボリュームをロックするファイル オブジェクト (*hDevice) へのハンドルを介してのみアクセスできます。

どうもありがとう、頑張ってください。

4

1 に答える 1

1

できません。

ボリュームがロックされると、ファイルとしてではなく、ボリューム データ構造の生のビューとしてのみアクセスできます。それFSCTL_LOCK_VOLUMEは、生のデータ構造をいじることができるようにするためです。raw ボリュームを読み取るために、渡したハンドルで 、 and および CousinsReadFileReadFileEx使用WriteFileできます。WriteFileExDeviceIoControl

それをしたくないが、他の人がディスクを見ている間 (バックアップなど) にディスクを変更するのを止めるだけなら、シャドウ コピーを検討するかもしれません。ただし、何をしようとしているかによって異なります。

于 2013-03-28T16:41:22.910 に答える