我们可以在 Windows 操作系统中使用 Int 13h(直接磁盘读/写)还是 Windows 保护模式不允许我们使用,如果可以,是否有工作轮次? 提前致谢。
最佳答案
不,Windows 子系统在引导期间初始化时会重新配置内核的 BIOS 中断处理,因为 BIOS 调用是 16 位的,而不是保护模式,因此 int 13h 将无效。这就是为什么有些驱动程序是为完全绕过 BIOS 的 32 位保护模式编写的。
这引出了一个问题 - 你为什么要这样做?
Windows 会在任何与 BIOS 通信的尝试中终止您的代码,就好像在说“嘿,你的代码,你作为 Windows 老板与我交谈,你不能绕过我,mwuah ha ha < strong>请勿踏入我的领地之外”。
唯一使用 int 13h 的时间是在 Windows 加载之前的启动阶段,或者如果您使用 MSDOS 作为系统,即没有 Windows,只需启动进入 MSDOS,那么 int 13h 将有效使用。在这两种情况下,它们都是 16 位模式,因此可以访问 BIOS。
据我所知,有一个常见的中断 0x2E,这是内核的系统调用。
简而言之,我不建议尝试绕过 Windows 系统,这就是为什么有驱动程序可以为您做这件事的原因,您最好将驱动程序作为磁盘 i 的一部分进行交互/o 子系统,让它为您处理。
关于windows - Windows保护模式下的int 13h?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2123639/