无忧启动论坛
标题:
怎样在TXTSETUP.OEM中添加注册,N版及驱动高手看一下
[打印本页]
作者:
zhaohj
时间:
2010-12-1 12:26
标题:
怎样在TXTSETUP.OEM中添加注册,N版及驱动高手看一下
一个inf文件,想通过F6解决IDE驱动问题,不知下面的服务怎样添加到txtsetup.oem中的[config.*]段落中:
[AMDIDE_Inst]
CopyFiles = @AMDIDE.sys
CopyFiles = @pciidex.sys
;CopyFiles = @atapi.sys
AddReg = intelChannelEnableCheck_AddReg
[AMDIDE_Inst.Services]
AddService = AMDIDE, %SPSVCINST_ASSOCSERVICE%, AMDIDE_Service_Inst
[AMDIDE_Service_Inst]
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_BOOT_START%
ErrorControl = %SERVICE_ERROR_NORMAL%
LoadOrderGroup = System Bus Extender
ServiceBinary = %12%\AMDIDE.SYS
[intelChannelEnableCheck_AddReg]
HKR,,MasterOnMask,%REG_DWORD%,0x00000080
HKR,,MasterOnConfigOffset,%REG_DWORD%,0x00000041
HKR,,SlaveOnMask,%REG_DWORD%,0x00000080
HKR,,SlaveOnConfigOffset,%REG_DWORD%,0x00000043
[AMDIDE_Inst.PosDup]
*PNP0600
[ControlFlags]
ExcludeFromSelect=*
[Strings]
ITL = "Advanced Micro Devices"
PCI_IDE = "AMD PCI IDE Controller"
DiskDesc = "Installation Disk for amd PCI SATA/IDE Controller"
MS-Drivers = "(Standard IDE ATA/ATAPI controllers)"
HDCClassName = "IDE ATA/ATAPI controllers"
REG_DWORD = 0x00010001
SPSVCINST_ASSOCSERVICE = 0x00000002
SERVICE_KERNEL_DRIVER = 1
SERVICE_BOOT_START = 0
SERVICE_ERROR_NORMAL = 1
[
本帖最后由 zhaohj 于 2010-12-1 17:02 编辑
]
作者:
dvd008
时间:
2010-12-1 14:32
注册表啊,
参考INTEL的AHCI就可以,好像只有一个加载的位置是IDE多出来的,
其它项目相同.
原来有个NV,VMSCSI的带CINFIG的
关键是PCI加载到扩展BUS了
加载到SCSI不行
还可以看看NV的原厂驱动,它的NVRD32等以前我们都是
加载到SCSI,没有问题,但是原厂的是加载到扩展BUS
[nvraidbus.ntx86.Services]
AddService = nvrd32,0x00000002,nvraid_Service_Inst,
就这样,利用INF加了驱动服务
作者:
zhaohj
时间:
2010-12-1 15:36
[AMDIDE_Inst.Services]
AddService = AMDIDE, %SPSVCINST_ASSOCSERVICE%, AMDIDE_Service_Inst
服务也加载了。
要么蓝色部分的注册表有错误
作者:
zhaohj
时间:
2010-12-2 08:50
给这些IDE设备装驱动的时候,会根据windows\inf\mshdc.inf来安装,换句话说,mshdc.inf中记录了系统自带的IDE控制器的驱动相关信息。
这些明白以后,举个例子
现在有IDE控制器A,它的驱动是AD
有IDE控制器B,它的驱动是BD
有标准双通道控制器C,它的驱动是CD
那么有:
A-AD
B-BD
C-CD
这么个对应关系,恰巧,mshdc.inf中也是这样写的。
如果我们直接搜寻A或B设备的驱动,他们会默认安装AD或BD驱动,不会安装CD驱动,因为有明确的对应关系,那么,我们如果能改变这个对应关系,也就是说:
A-CD
B-CD
C-CD
这个时候,如果搜寻A设备的驱动,会安装CD,搜寻B设备的驱动,也会安装CD,由于CD就是标准双通达PCI IDE控制器的驱动,所以无论A、B设备是什么,都会装在CD驱动即“标准双通达PCI IDE控制器”
原理说到这里,那么怎么实现呢?
IDE控制器的相关信息在注册表中:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}
在这个键下有若干个子键,一般名字为“0000”,“0001”等等,视IDE设备数量而定,不通的硬件配置会有不同。
每个子键下DriverDesc键的值,代表这个设备的名字,就像每个人的名字一样,这个可能会重复。
每个子键下MatchingDeviceId键的值,代表设备的ID,就像每个人的身份证有个身份证号一样,用来唯一标识这个设备。
好的,这样我们要做的是:
1、获取HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}下的每个子键的MatchingDeviceId键值,得到设备ID后看一下同一子键下DriverDesc的键值,看看是不是你当前的IDE控制器,如果是,那么也就是获得了要更改的IDE设备的ID值
2、在windows\inf\mshdc.inf下搜索这个设备的ID值,找到其对应的驱动
例如
我的IDE设备是:PCI\VEN_8086&DEV_7111
而标准双通道IDE设备是:PCI\CC_0101
在windows\inf\mshdc.inf下搜索这两个,发现它们对应的驱动分别是:
%PCI\VEN_8086&DEV_7111.DeviceDesc%=intelide_Inst, PCI\VEN_8086&DEV_7111
%PCI\CC_0101.DeviceDesc% = pciide_Inst,,PCI\CC_0101
这样,我们就把我的IDE设备对应的驱动更换为标准双通道的:
%PCI\VEN_8086&DEV_7111.DeviceDesc%=pciide_Inst,,PCI\CC_0101
欢迎光临 无忧启动论坛 (http://wuyou.net/)
Powered by Discuz! X3.3