Estou experimentando um controlador PCI-to-SATA Sil3112 e Sil3114. Essas placas são reconhecidas e inicializáveis pelo DOS e Windows 9x, mas não pelo instalador do Windows XP.
Posso fazer com que o Windows XP reconheça as unidades SATA conectadas a esta placa se eu instalar os drivers pressionando F8 durante a instalação. Mas por que isso é necessário quando o DOS pode vê-los sem nenhum driver?
Instalei o BIOS não RAID mais recente em ambas as placas, portanto, não é um problema de configuração RAID. Anexar uma unidade com o XP já instalado permitirá que o sistema alcance o carregador de inicialização, mas o computador exibirá uma tela azul ao tentar inicializar, presumivelmente porque esses drivers estão de fato ausentes.
Por que o XP precisa desses drivers?
A bios do PC fornece uma interrupção de software para acessar o(s) disco(s) rígido(s) em modo real de 16 bits. As placas controladoras de unidade podem e geralmente fornecem o que é conhecido como "option rom" que conecta a interrupção para adicionar suporte para as unidades conectadas à placa controladora.
O DOS sempre usa essas rotinas fornecidas pelo BIOS para acessar as unidades (a menos que você carregue manualmente um driver que as substitua).
O Windows 9x tinha drivers de 32 bits para tipos comuns (na época) de disco rígido, mas se nenhum driver de 32 bits estiver disponível para uma determinada unidade, ele retornará ao modo real para acessar as unidades. Isso não é ótimo para o desempenho, mas pelo menos permitirá que a unidade seja acessada.
A linha do Windows NT, por outro lado, não tem suporte para retornar ao modo real e usar drivers do BIOS. Se não tiver um driver de 32 bits para o controlador, ele não poderá usar a unidade.
Alguns controladores SATA possuem um modo de emulação IDE, onde emulam um controlador EIDE padrão (que possui drivers incluídos em praticamente todas as versões do Windows). Isso é particularmente comum onde o controlador SATA está integrado como parte do chipset, mas alguns controladores independentes também podem suportá-lo.
Não tenho 100% de certeza sobre os detalhes técnicos, porém, os controladores IDE tradicionais do IIRC usavam endereços de base fixos. Não tenho certeza se é possível ter mais de um controlador desse tipo em um sistema com o segundo com um endereço base não padrão. A maioria dos controladores de chipset, pelo menos, parece limitar você a quatro unidades (o número suportado por um controlador EIDE padrão) quando no modo de emulação IDE.
Tanto o DOS quanto o Windows 98 usam drivers que são anexados às funções do BIOS e fornecidos por uma ROM na placa.
Esses são drivers de modo real que não podem ser usados por um sistema operacional executado em modo protegido, portanto, o XP precisa de drivers de modo protegido.
O XP usa os drivers de modo real para carregar os drivers de modo protegido durante a inicialização e, em seguida, alterna o modo. O DOS nunca muda de modo e, portanto, não precisa de drivers separados.