我正在尝试使用 Sil3112 和 Sil3114 PCI-to-SATA 控制器。这些卡可以被 DOS 和 Windows 9x 识别和引导,但不能被 Windows XP 安装程序识别。
如果我在安装过程中按 F8 安装驱动程序,我可以让 Windows XP 识别连接到此卡的 SATA 驱动器。但是,当 DOS 可以在没有任何驱动程序的情况下看到它们时,为什么有必要这样做呢?
我在这两张卡上都安装了最新的非 RAID BIOS,所以这不是 RAID 配置问题。附加已安装 XP 的驱动器将允许系统访问引导加载程序,但计算机在尝试引导时会蓝屏,大概是因为这些驱动程序实际上丢失了。
为什么 XP 需要这些驱动程序?
PC BIOS 提供软件中断以在 16 位实模式下访问硬盘驱动器。驱动控制器卡可以并且通常确实提供所谓的“选项 rom”,它挂钩中断以增加对连接到控制器卡的驱动器的支持。
DOS 总是使用这些 BIOS 提供的例程来访问驱动器(除非您手动加载覆盖它们的驱动程序)。
Windows 9x 为常见(当时)类型的硬盘驱动器提供了 32 位驱动程序,但如果没有可用于给定驱动器的 32 位驱动程序,它将退回到切换到实模式以访问驱动器。这对性能来说不是很好,但至少可以访问驱动器。
另一方面,Windows NT 系列不支持切换回实模式和使用 BIOS 驱动程序。如果它没有用于控制器的 32 位驱动程序,它将无法使用该驱动器。
一些 SATA 控制器具有 IDE 模拟模式,它们模拟标准 EIDE 控制器(几乎每个版本的 Windows 中都包含驱动程序)。这在 SATA 控制器作为芯片组的一部分集成的情况下尤其常见,但某些独立控制器也可能支持它。
不过,我不能 100% 确定技术细节,IIRC 传统 IDE 控制器使用固定基址。我不确定系统中是否可以有多个这样的控制器,而第二个控制器具有非标准基地址。在 IDE 仿真模式下,大多数芯片组控制器似乎至少将您限制为四个驱动器(一个标准 EIDE 控制器支持的数量)。
DOS 和 Windows 98 都使用附加到 BIOS 功能并由卡上 ROM 提供的驱动程序。
这些是在保护模式下运行的操作系统无法使用的实模式驱动程序,因此 XP 需要保护模式驱动程序。
XP 在启动过程中使用实模式驱动程序加载保护模式驱动程序,然后切换模式。DOS 从不切换模式,因此不需要单独的驱动程序。