Windows の MBR を変更する必要があり、これを Windows から実行したいと考えています。
これが私の質問です。CreateFile を呼び出すと、物理デバイスのハンドルを取得できることがわかっています。MBR は常に \\.\PHYSICALDRIVE0 にありますか? また、ディスクから直接読み取る Windows API についても学習中です。readabsolutesectors と writeabsolutesectdors は、MBR を含むディスク セクターの読み取り/書き込みに使用する必要がある 2 つの関数ですか?
自分で学んだことから編集します。MBR は常に \\.\PHYSICALDRIVE0 にあるとは限りません。また、MBR を含むドライブのデバイス名を指定して CreateFile を呼び出すことにより、(少なくとも XP では管理者として) ブートセクタに書き込むことができます。また、WriteFile を呼び出し、CreateFile を呼び出して作成されたデバイスのハンドルを渡すだけで、このドライブに書き込むことができます。
Joel Coehoorn に対処するために編集します。BIOS での POST の後、Windows の起動を許可する前に、ハードウェア レジスタを変更する必要があるプロジェクトに取り組んでいるため、MBR を編集する必要があります。私たちの計画は、Windows が起動する前にコードを実行するようにブートローダーを変更することで、これらの変更を行うことです。
Cd-MaN 用に編集します。情報をありがとう。ただし、あなたの答えには、私が知らなかったことは何もありません。また、あなたの答えは私の質問に対応していません。特にレジストリは、複数の理由で必要なことを絶対に行いません。その大きな理由は、Windows が、当社の製品で実行される複数のソフトウェア レイヤーの中で最上位のレイヤーであることです。これらの変更は、下位レベルが実行される前に行う必要があるため、レジストリは機能しません。
Cd-Man の PS。私が理解しているように、あなたが提供する情報は完全に正しくありません。Vista の場合、書き込み対象のセクターがブート セクターであれば、ボリュームに書き込むことができると思います。http://support.microsoft.com/kb/942448を参照してください。