OSからEFIシステムテーブルにアクセスできますか? ランタイム サービスがマップされている場所を知りたいです。その理由は、Windows API は変数サービスをユーザー モード (Get/SetFirmwareEnvironmentVariable) にのみ公開するためですが、カスタム ドライバーで直接アクセスして残りのサービスを使用できるかどうか疑問に思っていました。Windows ローダーがサービスの仮想アドレスを含むテーブルをカーネル メモリにマッピングしていることはわかっていますが、それを見つけて読み取る方法が見つかりません。誰かがこの目標を達成する方法について提案や指示を提供できますか?
1947 次
2 に答える
0
1 年前の質問ですが、私はそれに答えます。
簡単に言えば。いいえ、できません。これは完全に Windows 内部のものであり、Microsoft が公開しない場合、UEFI ランタイム サービスにアクセスする方法はありません。UEFI 変数に関しては、それらは不揮発性 RAM に保存され、すべての変数がどこにどのように保存されているかを知っているのは UEFI ファームウェア (BIOS) だけです。したがって、BIOS が Windows が UEFI ランタイム サービスへのポインターを取得する方法を提供するか、Microsoft が BIOS ベンダーと次のような契約を結んでいるかの 2 つの可能性があります。 UEFI ランタイム サービス期間へのポインターを格納する必要があるメモリの場所。
于 2015-05-08T22:27:27.973 に答える
-1
を使用して NVRAM に書き込むプログラムを見ましたSetFirmwareEnvironmentVariable
。
于 2016-04-13T00:36:10.627 に答える