在Windows保护模式下int 13h?

时间:2010-01-23 15:29:16

标签: windows interrupt-handling protected-mode

我们可以在Windows操作系统中使用Int 13h(直接磁盘读/写),还是Windows保护模式不允许我们使用,如果是,那么是否有工作轮? 提前谢谢。

4 个答案:

答案 0 :(得分:6)

不,Windows子系统在启动期间初始化时,会重新配置内核的BIOS中断处理,因为BIOS调用是16位,而不是保护模式,因此int 13h将无效。这就是为什么有32位保护模式的驱动程序完全绕过BIOS的原因。

这引出了一个问题 - 你为什么要这样做?

Windows会在尝试与BIOS通信时终止你的代码,好像在说'嘿,你编码,你跟我说话是Windows Boss,你不能绕过我,mwuah哈哈 < strong> 不要放在我的域外 '。

将使用int 13h的唯一时间是在启动阶段BEFORE窗口加载期间,或者如果您使用MSDOS作为系统,即没有窗口,只需启动到MSDOS,那么int 13h将有效使用。在这两种情况下,它们都是16位模式,因此可以访问BIOS。

据我所知,有一个常见的中断0x2E,就是内核的系统调用。

简而言之,我不建议尝试绕过Windows系统,这就是为什么有一个驱动程序为你做这件事,你最好与驱动程序作为磁盘的一部分进行交互/ o子系统让你为它处理它。

答案 1 :(得分:1)

使用正确的权限(管理员拥有它们),您可以使用Win32 CreateFile和相关功能直接访问物理驱动器和逻辑分区。请参阅MSDN文档。

答案 2 :(得分:1)

正如其他人所说,除非你使用的是16位MSDOS,否则它将无法工作,但是如果你使用的是32位系统并拥有debug.exe,你可以亲自尝试一下。 (你可能会崩溃你的操作系统!)只需输入命令mov ax等,int 13h等,然后执行它。

答案 3 :(得分:0)

Int 13h在Windows try

中不起作用