私はBIOSのint 15 - E820関数に慣れています。固定のという物理的な場所を選ぶことができます。あなたが望むものを置いて、それを上書きしません。その固定メモリアドレス(最初に仮想ポインタにマップするかもしれません)。UEFIからOSに情報を渡す
しかしUEFIのケースでは、私が知っている限り、ユーザー用に予約されたメモリ領域がないため、特定のメモリアドレスにバッファを割り当てることに頼ることはできませんでした。したがって、私はUEFIメモリメモリ関数を使用する必要があります - ではないポインタを返します。は固定されていません。
は、だから私の質問がある -
それはOSが上がるいったん上書きされないバッファを割り当てることは可能ですか?
どのようにOSに割り当てられたバッファのポインタを渡すことができるので、私はOSからアクセスすることができます(割り当ては、バッファ自体が上書きされないので、 )。
ありがとうございます!
INT 15h、AX = E820hのいずれかのユーザ用に予約されたメモリ領域はありません。これは単にメモリの使用領域のリストを返します。この機能を使用するOSはメモリの一部の領域を使用しないように、変更されたリストを提供する独自のルーチンで置き換えることができます。同じUEFI関数 'GetMemoryMap'を使っても同じことができます。 –