1
6
不,Windows子系统在引导期间初始化时,会重新配置内核的BIOS中断处理,因为BIOS调用是16位的,而不是保护模式,因此int 13h无效。这就是为什么有些驱动程序是为32位保护模式编写的,完全绕过了BIOS。 这就引出了一个问题——你为什么要这么做? Windows会在任何尝试与BIOS通信时终止代码,就好像在说' 嘿,你编代码,你跟我说你是Windows的老板,你不能绕过我,哇哈哈。 不要踏出我的领域 '. 唯一一次使用int 13h的时间是在Windows加载之前的引导阶段,或者如果您使用msdos作为系统,即没有Windows,只需引导到msdos,那么int 13h将是有效的。在这两种情况下,它们都是16位模式,因此可以访问BIOS。 据我所知,有一个常见的中断0x2e,那就是内核的系统调用。 简言之,我不建议尝试绕过Windows系统,这就是为什么有一个驱动程序可以为您这样做的原因,您最好作为磁盘I/O子系统的一部分与驱动程序进行交互,并让它为您处理。 |
2
1
使用正确的权限(管理员拥有这些权限),您可以使用win32 createfile和相关函数直接访问物理驱动器和逻辑分区。查看 MSDN 文档。 |
3
1
正如其他人提到的,除非您使用16位-msdos,否则它将无法工作,但如果您使用的是32位系统,并且 debug.exe 你可以自己试试。(您的操作系统可能崩溃!)只需输入命令mov ax等。13h等。然后执行它。 |