2

一部のディスク I/O を並列化したいのですが、ファイルが同じディスク上にあるとパフォーマンスが大幅に低下します。

ドライバと実際のディスクの間にはさまざまなフィルタ ドライバが存在する可能性があることに注意してください。たとえば、2 つのファイルが異なる仮想ディスク (VHD) にあるが、同じ物理ディスクにある場合があります。

HANDLE2 つの が同じ物理ディスク上のファイル (またはパーティションなど) を参照しているかどうかを検出するにはどうすればよいですか?

これが不可能な場合、次善の/最も近い代替手段は何ですか?

4

1 に答える 1

0

これはかなり複雑ですが、最初のステップはハンドルからボリューム名を取得することです。これは、Vista 以降でGetFinalPathNameByHandle関数を使用して行うことができます。以前の Windows バージョンをサポートする必要がある場合は、この例を使用できます。

ファイル名がわかったので、ドライブ文字またはボリューム名を解析し、この質問に対する回答で説明されている方法を使用できます。

于 2012-07-13T22:32:43.343 に答える