2012-03-12 22 views
3

WinApiとC++を使用して物理ディスクごとにリスト論理ディスクを持つ物理ディスクのリストを取得する方法主な目標は、物理ディスクと論理ディスクの間のリンクを決定することです。ありがとう!物理ディスクと論理ディスクのリストはどのように取得できますか?

+2

私は完全な答えを得る時間がありませんが、ボリュームの場合は 'FindFirstVolume'、物理ディスクの場合は' SetupDiGetClassDevs'、ボリュームは複数のディスクにまたがることを覚えておいてください。 – avakar

+0

私はavakarが何を意味しているかは、これがおそらく文書化されている情報の種類だろうと思います。あなたがその文書を見ましたか?もしそうなら、内部で理解できないものがありますか? –

答えて

2

avakarのアイデアより簡単な解決策:QueryDosDevice。あなたはGetLogicalDriveStringsから得ることができるドライブレターを渡す必要があります、あなたは物理的な名前を戻します。

+1

論理ドライブとボリュームは同等ではないことに注意してください。複数のドライブは同じボリュームを参照することも、全くボリュームを参照することもできません(ドライブがネットワーク上の場所を指している場合)。 – avakar

+0

ありがとう!これは動作します! – lebron2323

+0

@avakar:そうですね、この2つの関係はかなり複雑になります(たとえば階層化されたストレージも無視しています)。どんな簡単な解決策でも、珍しいケースが見逃されます。 – MSalters

関連する問題