无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3573|回复: 8

请教关于CHKPCI.COM 检测输出与其硬件库编制问题,netwinxp 版主请进

[复制链接]
发表于 2009-1-12 21:50:47 | 显示全部楼层 |阅读模式
请教:netwinxp 兄及各位大侠,关于CHKPCI.COM 检测输出与其硬件库编制问题

1、 CHKPCI.COM 在检测完硬件后仅输出与其硬件库hwid中存在且以下面两种格式书写的硬件记录相匹配的信息,是这样么?
    PCI\VEN_xxxx&DEV_xxxx&CC_xxxx
    PCI\VEN_xxxx&DEV_xxxx

2、若上述问题的答案是肯定的,那么在编写 CHKPCI.COM 的硬件库hwid时,是否仅需写入“PCI\VEN_xxxx&DEV_xxxx&CC_xxxx”、“PCI\VEN_xxxx&DEV_xxxx”这两种格式的硬件记录便可;或者说非上述两种格式的硬件记录即使存在也属多余?

3、先举一个例子:以下的这段[HardwareIdsDatabase]硬件记录(共11条)存在于某pe的 Txtsetup.sif 文件中,且该pe中的驱动文件"amdide.sys"丢失或损坏;现用该pe来启动一台戴尔320台式机电脑,结果是无法正确识别出(找不到)硬盘(虽说该pe中存在"pciide"文件,且假如事前删除掉前面的5条硬件记录的话,事实上使用"pciide"也的确可以正确识别出硬盘)。
-------------------------------------------------------------
PCI\VEN_1002&DEV_4380&SUBSYS_01E51028&REV_00 = "amdide"
PCI\VEN_1002&DEV_4380&SUBSYS_01E51028 = "bbbbbb"
PCI\VEN_1002&DEV_4380&CC_01018F = "ccccccc"
PCI\VEN_1002&DEV_4380&CC_0101 = "dddddddd"
PCI\VEN_1002&DEV_4380&REV_00 = "eeeeeee"
PCI\VEN_1002&DEV_4380 = "pciide"
PCI\VEN_1002&CC_01018F = "ggggggg"
PCI\VEN_1002&CC_0101 = "hhhhhhh"
PCI\VEN_1002 = "iiiiiii"
PCI\CC_01018F = "jjjjjjjj"
PCI\CC_0101 = "kkkkkkk"
;戴尔320台式机电脑硬盘信息
------------------------------------------------------------
问题来了:
      pe在启动过程中利用 Txtsetup.sif “识别”硬件时,是否是按照上面给出的11条硬件记录的格式顺序(不管这些记录处于 Txtsetup.sif 文件[HardwareIdsDatabase]字段中的何种位置)去寻找相应的硬件记录(然后加载与按顺序首先找到的硬件记录相适应的.sys驱动文件)?
      一旦寻找到与硬件相匹配的首条硬件记录,则无论(按顺序)后面还有多少可供“使用的”硬件记录,也不管首先找到的硬件记录所指定的驱动文件可否成功加载,均不再对该硬件的其他记录进行“使用”?
发表于 2009-1-13 08:54:11 | 显示全部楼层
chkpci采用的算法是首条匹配原则,遇到匹配的纪录后就不再查找下一条记录。
而PE的txtmode采用的是最佳匹配原则,会选择最接近实际硬件的HWID的匹配记录。
可能在下一版本的chkpci也会用PE的匹配算法。
回复

使用道具 举报

发表于 2009-1-13 09:48:48 | 显示全部楼层
目前看来同样的驱动,chkpc不能认到的txtmode也有可能认到,像ISTORY78,CHKPCI不能认到我的ASUS_ P45的ICH10R AHCI SATA CONTROLLER,而txtmode能认到。
回复

使用道具 举报

 楼主| 发表于 2009-1-13 09:58:00 | 显示全部楼层
谢谢 netwinxp 兄!
1、“chkpci采用的算法是首条匹配原则,遇到匹配的纪录后就不再查找下一条记录。”——在一台采用intel845芯片的电脑上使用chkpci进行检测时的确是仅显示了一条信息:PCI\VEN_8086&DEV_24CB="intelide",确如兄所说。但在我的办公电脑上(戴尔optiplex320)进行检测却显示出两条信息:PCI\VEN_1002&DEV_4380&CC_0101="amdide" 和"PCI\VEN_1002&DEV_438C="pciide",为何会出现两条信息呢?注:chkpci硬件库采用的是您给出的“Intel SIS VIA ULI AMD ATI NV南桥、板载HPT JMB MV ITE SIL PDC驱动[09-01-04]”方案

2、“而PE的txtmode采用的是最佳匹配原则,会选择最接近实际硬件的HWID的匹配记录。”——“最佳匹配原则”是什么呢?是否是按照1#中列出的那11条顺序呢?是否在选择了"最接近实际硬件的HWID的匹配记录”后就不管驱动文件是否存在(成功加载)?

[ 本帖最后由 不才 于 2009-1-13 10:02 编辑 ]
回复

使用道具 举报

发表于 2009-1-13 10:16:55 | 显示全部楼层
1、因为4380&CC_0101是ATI 6XX SATA(IDE Mode),438C是ATI 6XX PATA(这个独立于AHCI、RAID和IDE Mode而存在),两者是不同一套硬件,可以同时存在,所以会检查到两条(有多个硬盘控制器的话就会有多条)。
2、匹配的优先等级个人推测——VEN、DEV、SUBSYS、REV、CC,其中匹配字串的优先等级高于空字串。搜索的记录后估计如果找不到文件也同样会出问题。

[ 本帖最后由 netwinxp 于 2009-1-13 11:02 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2009-1-13 14:33:50 | 显示全部楼层
原帖由 netwinxp 于 2009-1-13 10:16 发表
1、因为4380&CC_0101是ATI 6XX SATA(IDE Mode),438C是ATI 6XX PATA(这个独立于AHCI、RAID和IDE Mode而存在),两者是不同一套硬件,可以同时存在,所以会检查到两条(有多个硬盘控制器的话就会有多条)。
2、匹配 ...

再次感谢 netwinxp 兄!又学到了知识。
嘿嘿,悄悄地问声 netwinxp 兄,您的新版 chkpc 何时面世?感谢您为大家提供了那么好的软件!
回复

使用道具 举报

 楼主| 发表于 2009-1-13 14:47:31 | 显示全部楼层
原帖由 zhaohj 于 2009-1-13 09:48 发表
目前看来同样的驱动,chkpc不能认到的txtmode也有可能认到,像ISTORY78,CHKPCI不能认到我的ASUS_ P45的ICH10R AHCI SATA CONTROLLER,而txtmode能认到。

嘿嘿,chkpc能否“认到”硬件(严格地说,应该是“输出检测到的硬件”)信息仅仅取决于其内置(或外置)的hwid硬件库。
只要txtsetup.sif文件中存在相关的硬件记录,txtmode自然是能够认到的。
采用 chkpc 方式,个人认为目前主要是为添加外置驱动提供方便,以弥补pe内核中缺少的(txtsetup.sif文件中不存在记录的)驱动。

[ 本帖最后由 不才 于 2009-1-13 14:58 编辑 ]
回复

使用道具 举报

发表于 2009-1-13 19:40:55 | 显示全部楼层
CHKPCI的作用主要在于为系统动态添加很可能用到的硬件信息库和相应的驱动文件,从而减少启动系统时所需的内存要求。
其实只要替换另外的HWID库,它一样能检测网卡、声卡、显卡等。
回复

使用道具 举报

 楼主| 发表于 2009-1-13 22:27:15 | 显示全部楼层
嘿嘿,还是 CHKPCI 他爹解说的专业、到位!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-29 15:50

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表