无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
12
返回列表 发新帖
楼主: pseudo
打印 上一主题 下一主题

不要hwid又能怎样?硬盘控制器驱动只是一种服务

[复制链接]
31#
 楼主| 发表于 2008-12-17 23:43:05 | 只看该作者

回复 #28 wsw8810 的帖子

外置驱动包,DOS下判断南桥总线类型和型号在自动加载相应驱动.已经实现。收录的驱动是否全是另一回事。
回复

使用道具 举报

32#
发表于 2008-12-17 23:56:12 | 只看该作者
原帖由 adatsui 于 2008-12-17 06:53 发表
你可以明確地說, 錯覺 何解嗎 ?
我是否用了 dell 的驅動在 IMB 機上, 我也不確定, 我是用了 LSI 的驅動在 LSI 的卡上.  
我再做了測試, 用另一安裝方法, 都是進了 PE後才裝的, 也是成功可讀寫 ...

你的这个驱动仅仅是辅助的驱动,另外一个带有VEN_xxxx&DEV_xxxx&CC_xxxx才是主要的磁盘控制器驱动。
回复

使用道具 举报

33#
发表于 2008-12-18 00:21:04 | 只看该作者
是的, 第一個驅動才是主要的, 我把後面省略了貼出來.....

這驅動我是由網上隨便下載的, 反正我見 PCI\VEN_....DEV_ 與機內所見致, 我便用上了.  跟隨機送來的 OS 是 2003 所以並沒隨 XP 的驅動, 而這個卡 2003 與 XP 的驅, 連名字也不同.  
lsi_sas.sys for 2003
symmpi.sys for xp

反正進入PE後用手動的方式加載是成的, 讀寫正常, 只是有人說這是給 dell 的驅動, 我才問問有沒用錯.
回复

使用道具 举报

34#
发表于 2008-12-18 07:04:09 | 只看该作者
驱动的确有以服务方式加载的,但是我不懂


比如, 正常系统的 蜂鸣,是一个服务,但是,也只是一个驱动
回复

使用道具 举报

35#
发表于 2008-12-18 08:09:48 | 只看该作者
原帖由 netwinxp 于 2008-12-16 22:53 发表
真的不需要HWID吗?你试试将setupreg.hiv里面的CriticalDeviceDatabase相关项删除看还能不能识别!


CriticalDeviceDatabase这个键 是用来储存当前硬件设备数据信息的

对于PE来说 是在启动的时候根据txtsetup.sif设定自动建立的

即注册表CriticalDeviceDatabase中与txtsetup.sif中相同的部分会被txtsetup.sif中的设定覆盖的 txtsetup.sif中没定义的部分则保留原(注册表CriticalDeviceDatabase中)设定

例外:CriticalDeviceDatabase下记录的东东
非具体的hwid 他是一个类
是多对一的关系,当然对于具体的某一台机器 也应该一个硬件对一个值
即换其他机子(硬件不同)也可能匹配
这个就是在设备管理器中的"匹配设备ID"

Enum 记录的是具体的hwid和硬件id
具体的hwid换其他机子(硬件不同)是不能匹配的
硬件id是可以多个类似的硬件匹配一个硬件id


其中具体的hwid就是在设备管理器中的"设备范例ID"

[ 本帖最后由 沙漠之子 于 2008-12-18 09:07 编辑 ]
回复

使用道具 举报

36#
发表于 2008-12-18 08:15:53 | 只看该作者
驱动和服务的注册项的确很相似
但是最大的区别是
驱动的ImagePath是*.sys
服务的ImagePath是*.exe

故加载的主体也不一样吧
回复

使用道具 举报

37#
发表于 2008-12-18 08:53:29 | 只看该作者
在[HardwareIdsDatabase]中
即可使用硬件id也可使用兼容id 比配设备id

常用硬件id和匹配设备id
其中匹配范围
匹配设备id >硬件id

一般不直接使用设备范例ID 这个没通用性的

匹配设备id一般
*xxx 或xxx

硬件id
xx\xxxx

[ 本帖最后由 沙漠之子 于 2008-12-18 08:56 编辑 ]
回复

使用道具 举报

38#
发表于 2008-12-18 11:05:56 | 只看该作者
关注这里......
回复

使用道具 举报

39#
发表于 2008-12-18 12:09:02 | 只看该作者
原帖由 pseudo 于 2008-12-17 23:43 发表
外置驱动包,DOS下判断南桥总线类型和型号在自动加载相应驱动.已经实现。收录的驱动是否全是另一回事。


我想问的是.是用批处理.不借助其它DOS下的程序(如果要仿效,蕃茄花园和深度的安装盘中已经有实例了.)...因为我想学习一下批处理操作低层的方法
回复

使用道具 举报

40#
发表于 2008-12-18 12:23:49 | 只看该作者
驱动也是服务,和DOS不同,WINDOWS的程序、驱动、动态链接库甚至是RES资源都可以看成TSR,采用事件激活,遇到事件才激活相应的模块,退出程序也只不过是一个特殊的事件。
*xxx或xxx其实仅是ACPI或BIOS层次的ID。
硬件层次的ID,一般包含:总线类型\VID&PID&SID&CC&RID。
硬件ID本身并没有分什么具体不具体的HWID,只不过是驱动的inf并不需要囊括上面的HWID各个字段,ENUM内的咚咚则是根据NTDETECT检测到的硬件信息自动添加一个完整的HWID(机子里面的每个pnp硬件设备都会再这产生一个具有完整HWID的项),WINDOWS会自动匹配最接近这个HWID的驱动项(空的字段被认为是匹配的,不过优先度低于真正的匹配,有任何一项不匹配都被认为整个不匹配)。CriticalDeviceDatabase并不是txtsetup.sif或ntdetect产生的,它是以前装过的驱动留下的(含被加工成PE的原本XP装过的驱动)。
比如我们的txtsetup.sif里面有PCI\&CC_0101、PCI\VEN_10DE&DEV_0065,那么具体硬件PCI\VEN_10DE&DEV_0065&SUBSYS_10001659&REV_A2就会使用第二个项,还须注意的一个就是HWID没显示的设备类别CC_xxxx,如果不匹配就不会去使用,比如RAID就不会去试图匹配&CC_0101的项。
我想问的是.是用批处理.不借助其它DOS下的程序

DOS本身并没有检测硬盘控制器的功能。一些论坛的XP安装,使用的是带电源检测功能的NTLDR来完成,它们并不是DOS程序,在DOS下也运行不了。
***P处理其实仅仅是调用其他程序或系统内部命令,它本身并没有多少东西,更不可能有直接操作底层的功能***

[ 本帖最后由 netwinxp 于 2008-12-18 13:29 编辑 ]
回复

使用道具 举报

41#
发表于 2008-12-18 12:36:35 | 只看该作者
注册表CriticalDeviceDatabase下的项目可能不是由txtSetup.sif生成的。实验如下:

我的PE中注册表[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase]下添加了三个项目:PS2_KEYBOARD、PS2_MOUSE和root#swenum三个项目。PE启动到引导程序(ReatogoLogon.exe),还没有进行“Bartpe.exe -pnp”或“HWPNP.EXE”之前打开注册表,[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase]下依然是三个项目,但是进入桌面之后,[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase]下的项目有十几项。这十几项除了内集的三项之外都是系统安装驱动时生成的。
回复

使用道具 举报

42#
发表于 2008-12-18 13:33:55 | 只看该作者
原帖由 liuhj 于 2008-12-18 12:36 发表
注册表CriticalDeviceDatabase下的项目可能不是由txtSetup.sif生成的。实验如下:
我的PE中注册表[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase]下添加了三个项目:PS2_KEYBOAR ...

没错,只有enum才是自动生成的,CriticalDeviceDatabase其实是添加进去的,AHCI驱动添加P处理、各论坛GHOST系统也是根据这个道理来制作的。我曾经试过强行添加不完整的HWID enum项,结果系统启动出现故障。

[ 本帖最后由 netwinxp 于 2008-12-18 13:35 编辑 ]
回复

使用道具 举报

43#
 楼主| 发表于 2008-12-18 18:52:28 | 只看该作者
原帖由 liuhj 于 2008-12-18 12:36 发表
...进入桌面之后,[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase]下的项目有十几项...

我在PE中,我怎么没有看到CriticalDeviceDatabase

未命名.JPG (54.14 KB, 下载次数: 70)

未命名.JPG
回复

使用道具 举报

44#
发表于 2008-12-18 19:23:54 | 只看该作者
原帖由 pseudo 于 2008-12-18 18:52 发表

我在PE中,我怎么没有看到CriticalDeviceDatabase


我为了增强PE对硬件的支持能力在这个地方加了三个键值(不敢多加,怕影响在不同机器运行),进入桌面后,这地方就会有十二键值。

cdd.JPG (50.74 KB, 下载次数: 72)

cdd.JPG
回复

使用道具 举报

45#
 楼主| 发表于 2008-12-18 19:29:14 | 只看该作者

回复 #44 liuhj 的帖子

不是说CriticalDeviceDatabase下有多少东西的问题,我这里Control下压根就没有CriticalDeviceDatabase
回复

使用道具 举报

46#
发表于 2008-12-18 19:33:57 | 只看该作者
即便是使用插件制作PE,也没有这个键,我为了增强PE对硬件的支持能力添加了这个注册表项和其下的三个键值:PS2_KEYBOARD、PS2_MOUSE和root#swenum。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-21 19:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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