-3

如何在 Windows 编程(保护模式)中直接访问前 1 MB RAM?

例如写入视频部分。

我可以使用 DPMI 解决所有问题吗?

4

1 回答 1

3

不,常规(=用户模式)应用程序不能直接访问物理地址空间(每个应用程序看到的地址空间是虚拟地址空间,由操作系统通过 MMU 管理)。拥有一个操作系统的重点是抽象硬件细节并向应用程序提供一个干净的程序界面,如果你想在屏幕上绘图,你应该使用 Windows 提供的图形库(GDI,DirectX)。

如果您编写在内核模式下运行的驱动程序,您几乎可以访问任何硬件资源,但如果您不仔细遵循 Windows 内核模式编程的规则,您可能会立即使整个系统崩溃并出现 BSOD .

如果您在谈论视频 RAM 和 DPMI,我想您来自一些关于 DOS 风格编程的书籍/教程(甚至根本没有任何操作系统);请记住,几乎所有这些东西都不适用于任何现代操作系统的上下文,因为运行的不仅是您的代码,因此您必须合作并遵守规则/使用操作系统的 API。

于 2012-05-28T00:01:10.597 回答