SATA RIDE SCSI驱动的集成


为了不再让WinXP的安装过程需要通过软盘加载SATA驱动程序
很多人都梦想主板的SATA驱动程序集成到安装光盘中 ,
本文就来DIY一张集成SATA驱动程序的Windows XP安装光盘


Windows XP安装目录及文件准备


打开资源管理器 , 在一个拥有足够磁盘空间的硬盘分区上创建一个文件夹
比如“D:XPSATA” , 用于保存Windows XP的全部安装文件 。
把一张完好的Windows XP安装光盘放入光驱
在资源管理器中将光盘中的文件全部选定 , 再复制到“D:XPSATA”目录中 。


准备驱动程序文件


一般随主板附送的驱动程序安装光盘中都有SATA的驱动程序 。
打开光盘目录 , 查找名称中含有“SATA”或“RAID”字符的文件夹
也可在主板制造商的网站或其它驱动程序下载站点(如:驱动之家“http://www.mydrivers.com”)搜索与自己的主板芯片组相匹配的SATA驱动程序 。
在D盘中建立一个新的目录(如“STATDRV”)
然后将找到的SATA驱动程序文件全部拷贝到这个目录中(D:SATADRV) 。


详细步骤


这里我们以Si3112的SATA驱动程序为例进行介绍 。
其它类型的SATA驱动程序的集成步骤几乎完全相同 ,
所不同的仅仅是驱动程序文件名的不同而已 。
在这个“D:STATDRV”的文件夹中 ,
一定会有一个扩展名为“.inf”或“.oem”的小文件
如“oemsetup.inf”或者“txtsetup.oem”等(本例中为“txtsetup.oem”)
用记事本程序打开它 , 随后要用!

编辑“txtsetup.sif”文件
打开“D:XPSATAI386”文件夹 , 找到一个名为“txtsetup.sif” 的文件
这是Windows XP在安装时加载驱动程序的信息文件
用记事本程序打开它 。

按“Ctrl F”快捷键 , 打开查找对话框 , 以“[SourceDisksFiles]”
为关键字进行查找 。找到这个字段后 , 其下面已经存在一些内容 。
翻页到这个字段的末尾(注意:不是整个文件内容的末尾) , 添加以下内容:“si3112.sys = 1,,,,,,3_,4,1” 。

这里的“si3112.sys = 1,,,,,,3_,4,1”是描述驱动程序所在位置的代码 。

代码的格式为:

“filename_on_source=diskid,subdir,
upgradecode,newinstallcode,spare,spare,newfilename”

在“txtsetup.sif”文件中的“[SourceDisksNames]”和“[WinntDirectorIEs]”
等字段中有详细的描述 。
有兴趣的朋友可以深入研究其它目录的对应关系 , 这里仅简单介绍 。

在实际操作时 , 绝对不可以照搬代码!特别是扩展名为SYS的文件“si3112.sys” ,
它是SATA驱动程序目录“D:STATDRV”中的驱动程序文件名
如果您的SATA驱动程序与本文所述的不同
则只需换成目录中相应的文件即可 。
切换到前面打开的“txtsetup.oem”文件 , 以“[HardwareIds.”为关键字进行搜索 ,
应该可以找到类似“[HardwareIds.SICS.Si3112]”的字段 。

该字段下的代码如:
“id =PCIVEN_1095&DEV_3112 &SUBSYS_31121095, Si3112”

切换到刚才打开的“txtsetup.sif”文件窗口中 , 以“[HardwareIdsDatabase]”
为关键字进行搜索 。找到后 , 将“txtsetup.oem”文件中“

[HardwareIds.SICS.Si3112_XP]”字段下的代码拷贝到“txtsetup.sif”文件的“[HardwareIdsDatabase]”字段末尾 。
不过 , 我们需要更改一下代码的格式 , 如将“id =PCIVEN_1095&DEV _3112&SUBSYS_31121095, Si3112”
改为:
“PCIVEN_1095&DEV_3112&SUBSYS_31121095 = Si3112”
(其他代码修改方法相同) , 更改后的代码如下:

PCIVEN_1095&DEV_3112&SUBSYS_31121095 = Si3112
PCIVEN_1095&DEV_3112&SUBSYS_34238086 = Si3112
PCIVEN_1095&DEV_3112&SUBSYS_311215D9 = Si3112
PCIVEN_1095&DEV_3112&SUBSYS_B0021458 = Si3112
PCIVEN_1095&DEV_3112&SUBSYS_01661028 = Si3112
PCIVEN_1095&DEV_3112&SUBSYS_82141033 = Si3112

推荐阅读