Windows が起動に使用しているディスク ドライブをプログラムで特定する方法を見つける必要があります。つまり、システム全体を起動するために BIOS がどのドライブを使用しているかを Windows から判断する方法が必要です。
Windows はこれを検出するためのインターフェイスを公開していますか? Windows API がどれだけ大きいかということを考えると、うまくいく何かがそこに埋め込まれていることを願っています。
テリー
ps ハードディスクの最初のセクタを読み取るだけでは何も楽しめません。私の開発ボックスには 2 つのハードディスクがあり、いずれかのハードディスクの最初の数セクタの内容を見ると、標準のボイラー プレート MBR があります。
いくつかのことを明確にするために編集します。デバイスを識別する方法は、(論理ディスク ドライブではなく) 物理ディスク ドライブを識別する文字列を使用することです。物理ディスク ドライブの形式は「\\.\PHYSICALDRIVEx」です。x は数字です。一方、論理ドライブは「\\.\x」という形式の文字列で識別されます。x はドライブ文字です。
編集して、捨てられたいくつかのアイデアについて話し合ってください。Windows がブートに使用した論理ボリュームを知っていても、ここでは役に立ちません。これが理由です。C: がミラーリングされた RAID セットアップを使用しているとします。これは、少なくとも 2 つの物理ドライブがあることを意味します。ここで、論理ドライブから物理ドライブへのマッピングを取得し、そのボリュームで使用されている 2 つの物理ドライブがあることを発見しました。Windows はどれを起動に使用しましたか? もちろん、これは、Windows の起動に使用される物理ドライブが、MBR を含む物理ドライブと同じであることを前提としています。