为什么我的 SATA 驱动器可以被 DOS 识别,但 XP 需要驱动程序才能识别它?

Zhr*_*hro 0 windows hard-drive sata

我正在尝试使用 Sil3112 和 Sil3114 PCI 至 SATA 控制器。这些卡可以被 DOS 和 Windows 9x 识别并启动,但不能被 Windows XP 安装程序识别和启动。

如果我在安装过程中按 F8 键安装驱动程序,我可以让 Windows XP 识别连接到该卡的 SATA 驱动器。但是,当 DOS 不需要任何驱动程序就可以看到它们时,为什么有必要这样做呢?

我已在这两张卡上安装了最新的非 RAID BIOS,因此这不是 RAID 配置问题。连接已安装 XP 的驱动器将允许系统访问引导加载程序,但计算机在尝试引导时会蓝屏,可能是因为这些驱动程序实际上丢失了。

为什么XP需要这些驱动程序?

在此输入图像描述

plu*_*ash 6

PC BIOS 提供软件中断以在 16 位实模式下访问硬盘驱动器。驱动器控制器卡通常可以提供所谓的“选项 ROM”,它挂钩中断以添加对连接到控制器卡的驱动器的支持。

DOS 始终使用这些 BIOS 提供的例程来访问驱动器(除非您手动加载覆盖它们的驱动程序)。

Windows 9x 具有适用于常见(当时)类型硬盘的 32 位驱动程序,但如果给定驱动器没有可用的 32 位驱动程序,它将回退到切换到实模式来访问驱动器。这对性能来说不是很好,但至少允许访问驱动器。

另一方面,Windows NT 系列不支持切换回实模式和使用 BIOS 驱动程序。如果没有用于控制器的 32 位驱动程序,它将无法使用该驱动器。


某些 SATA 控制器具有 IDE 仿真模式,可仿真标准 EIDE 控制器(几乎每个版本的 Windows 中都包含驱动程序)。当 SATA 控制器集成为芯片组的一部分时,这种情况尤其常见,但某些独立控制器也可能支持它。

不过,我不能 100% 确定技术细节,IIRC 传统 IDE 控制器使用固定基地址。我不确定系统中是否可以有多个这样的控制器,而第二个控制器具有非标准基地址。在 IDE 仿真模式下,大多数芯片组控制器似乎至少将您限制为四个驱动器(一个标准 EIDE 控制器支持的数量)。