Windows プログラミング (保護モード) で RAM の最初の 1 MB に直接アクセスするにはどうすればよいですか?
たとえば、ビデオ部分に書き込みます。
DPMI を使用してすべての問題を解決できますか?
Windows プログラミング (保護モード) で RAM の最初の 1 MB に直接アクセスするにはどうすればよいですか?
たとえば、ビデオ部分に書き込みます。
DPMI を使用してすべての問題を解決できますか?
いいえ、通常の (= ユーザーモード) アプリケーションは、物理アドレス空間に直接アクセスできません (各アプリケーションが認識するアドレス空間は、MMU を介して OS によって管理される仮想アドレス空間です)。オペレーティング システムを持つことの要点は、ハードウェアの詳細を抽象化し、クリーンなプログラム インターフェイスをアプリケーションに提示することです。画面上に描画する場合は、Windows が提供するグラフィック ライブラリ (GDI、DirectX) を使用する必要があります。
カーネル モードで動作するドライバーを作成すれば、ほぼすべてのハードウェア リソースにアクセスできますが、Windows カーネル モード プログラミングの規則に注意深く従わなければ、システム全体がすぐに BSOD でクラッシュする可能性があります。 .
ビデオ RAM と DPMI について話している場合は、DOS スタイルのプログラミングに関する本やチュートリアルから来ていると思います (または、オペレーティング システムがまったくない場合でも)。実行されているのはコードだけではないため、最新のオペレーティングシステムのコンテキストでは、そのようなものはほとんど適用できないことに注意してください。したがって、協力してルールに従い、OS の API を使用する必要があります。