S&R&S 驱动集成实例 - Windows克隆封装技术 - 系统评测 - 天空竞技场
发新话题
打印

[转帖] S&R&S 驱动集成实例

S&R&S 驱动集成实例

作者:realhyg

许多人都问我这个问题.我也说过许多遍了.顺别举个例子:

下载dps包,这个不会的话,别问我.

解压mass包到文件夹内.打开相应的驱动文件夹比如SI文件夹,然后打开3文件夹,里面一共有有4个文件.

property.dll SISRaid2.INF sisraid2.sys sisraid.cat

打开SISRaid2.INF
[SourceDisksFiles]
SiSRaid2.sys = 1,,
property.dll =1,,
是文件复制的目录,到driver目录里

关于系统服务的添加看下面字段:
[SIS182PCI.NT.Services]
AddService = SiSRaid2, %SPSVCINST_ASSOCSERVICE%, SiSRaid_Service_Inst, Miniport_Event_Inst

[SiSRaid_Service_Inst]
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_BOOT_START%
ErrorControl = %SERVICE_ERROR_NORMAL%
ServiceBinary = %12%\SiSRaid2.sys
LoadOrderGroup = SCSI Miniport
AddReg = PNP_PCI_ADDREG

[PNP_PCI_ADDREG]
HKR, "Parameters\PnpInterface", "5", 0x00010001, 0x00000001

还有:
[strings]
SiS="Silicon Integrated Systems Corp"
PCI\VEN_1039&DEV_0180&REV_01.DeviceDesc="SiS 180 RAID Controller"
PCI\VEN_1039&DEV_0182&REV_01.DeviceDesc="SiS 182 RAID Controller"
InstallDisk = "SiS 180/182 Raid Controller Driver Disk"
SPSVCINST_ASSOCSERVICE = 0x00000002
SERVICE_KERNEL_DRIVER = 1
SERVICE_BOOT_START = 0
SERVICE_ERROR_NORMAL = 1
REG_DWORD = 0x00010001

上面的:
[SiSRaid_Service_Inst]
ServiceType = %SERVICE_KERNEL_DRIVER%
字段中的%SERVICE_KERNEL_DRIVER%变量在[strings]字段中找到SERVICE_KERNEL_DRIVER = 1

实际的注册表为下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SiSRaid2]
"Group"="SCSI Miniport"
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\
72,00,69,00,76,00,65,00,72,00,73,00,5c,00,73,00,69,00,73,00,72,00,61,00,69,\
00,64,00,32,00,2e,00,73,00,79,00,73,00,00,00
"ErrorControl"=dword:00000001
"Start"=dword:00000000
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SiSRaid2\Parameters\PnpInterface]
"5"=dword:00000001

其他的也如此,但是有的必须有相关的chipset.比如ulata的驱动.

使用makepnf程序制作pnf文件,把SISRaid2.INF,和只做好的SISRaid2.pnf放到系统的inf文件夹里,把SISRaid2.INF驱动程序里需要复制的SiSRaid2.sys和property.dll复制到系统的driver文件夹里.

最后一步,查看SISRaid2.INF
[SiS]
%PCI\VEN_1039&DEV_0180&REV_01.DeviceDesc%=SIS182PCI,PCI\VEN_1039&DEV_0180
%PCI\VEN_1039&DEV_0180&REV_01.DeviceDesc%=SIS182PCI,PCI\VEN_1039&DEV_0181
%PCI\VEN_1039&DEV_0182&REV_01.DeviceDesc%=SIS182PCI,PCI\VEN_1039&DEV_0182

把上面的pci添加到驱动数据库

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#VEN_1039&DEV_0180]
"ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}"
"Service"="SiSRaid2"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#VEN_1039&DEV_0181]
"ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}"
"Service"="SiSRaid2"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\PCI#VEN_1039&DEV_0182]
"ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}"
"Service"="SiSRaid2"

所有的就OK了

S&R&S 驱动的集成问题:

秋天和死性用的是同一种办法,我的和他们的大致相同也有不同,他们的都把驱动放到driver里面修改注册表.这点我们相同,不同在于我的得把inf,pnf文件放到windows\inf文件夹下.

请大家慎重选择驱动集成方法.我的并不代表是对的.大家理性选择!!

驱动文件的分析手工可以也可以用工具,我推荐JUJUMAO的驱动程序分析工具2.0,不过它有点bug,生成注册表文件后我希望大家仔细对照一下.

*****注意******
dps的驱动包里有的文件夹内有2个inf文件请查看他们的class,只有为SCSIAdapter的才可以用工具分析.

PNF是有inf生成的预汇编信息文件.如果系统用到了inf驱动就会生成pnf文件.

TOP

S&R&S 驱动集成实例
http://www.lucky8k.com/thread-39321-1-1.html
自由天空 ghost系统封装步骤及手动减肥
http://www.lucky8k.com/thread-39322-1-1.html
定制自己的全logo GHOSTXP系统关键技术攻略:
http://www.lucky8k.com/thread-39332-1-1.html
GHOST参数不完全攻略
http://www.lucky8k.com/thread-39333-1-1.html
学做整合包
http://www.lucky8k.com/thread-39334-1-1.html
集成驱动之终极大法!封装和安装皆适用的!
http://www.lucky8k.com/thread-39335-1-1.html
系统封装与部署的深入研究
http://www.lucky8k.com/thread-39336-1-1.html
集成驱动终极大法之自动实现
http://www.lucky8k.com/thread-39337-1-1.html
放飞自由,随心所欲的封装!
http://www.lucky8k.com/thread-39338-1-1.html
删除多余输入法批处理
http://www.lucky8k.com/thread-39339-1-1.html
一键分区的img的2种思路
http://www.lucky8k.com/thread-39340-1-1.html
最精确的硬盘整数分区方法
http://www.lucky8k.com/thread-39341-1-1.html
封装部署新观点
http://www.lucky8k.com/thread-39450-1-1.html
集成 xp3 完美安装版〔正版认证免激活〕
http://www.lucky8k.com/thread-39453-1-1.html

TOP

发新话题