诠释13h在Windows保护模式?

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

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

这引出了问题 – 你为什么要这么做?

Windows会在任何尝试与BIOS通信的尝试中杀死你的代码,好像在说' 嘿,你的代码,你跟我说的Windows Boss,你不能绕过我, 不要在我的领域之外 '。

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

据我所知,有一个共同的中断0x2E,这是内核的系统调用。

总之,我不建议试图绕过Windows系统,这就是为什么有这样一个驱动程序为你做这样的事情,你最好作为磁盘I / O子系统的一部分与驱动程序交互让它为你处理。

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

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

诠释13h不起作用在Windows中尝试