none
XPE驱动组件的注册表键值问题和添加文件问题 RRS feed

  • 问题

  • 先谢谢昨天论坛里各位的帮助,呵呵。

    今天在制作别的驱动组件时又遇到了新的问题:在导入驱动的.inf文件时出现了注册表信息错误,如下

    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\INTEL\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\INTEL\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\INTEL\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\INTEL\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\INTEL\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\INTEL\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\INTEL\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\Intel\Display\igfxcui\.
    +++ CRITICAL ERROR +++:An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\igfxcui\.

    按照论坛里相关帖子的指引,应该是在*.sld ->components ->…… -> Registry Data中Add Registry Data,但是在"Registry Data"中我看到相应的reistry source已经存在了,但是value的那一栏空着,不知道键值应该填写什么呢?

    还有一个问题,Files里默认的文件通常是.dll,.sys等文件,大家通常会加文件么,加什么文件?(要不要考虑加上驱动的安装文件,就是.exe的那个)
    2009年8月21日 2:41

答案

  • 因为XPE是一个组件化的操作系统,所以XPE的注册表不像XPP的注册表那样完整,但你需要通过.inf导入注册表信息的时候,如果出现需要导入的目录结构和XPP不一致的话,就会出现不能Add的错误。
    对于这样的问题,则需要手动的创建注册表的目录和键值。具体的键值可以在INF文件中去找。或者在已经安装好该驱动的XPP中去查找。
    对于驱动组件中是否需要添加其它文件,要根据情况而定,例如声卡驱动如果带自己的声卡参数控制面板程序,则需要添加到你的驱动组件中去,但是如果是驱动的安装文件,例如setup.exe,则不需要添加到组件中。
    lzg_ad
    2009年8月26日 14:36
    版主

全部回复

  • 因为XPE是一个组件化的操作系统,所以XPE的注册表不像XPP的注册表那样完整,但你需要通过.inf导入注册表信息的时候,如果出现需要导入的目录结构和XPP不一致的话,就会出现不能Add的错误。
    对于这样的问题,则需要手动的创建注册表的目录和键值。具体的键值可以在INF文件中去找。或者在已经安装好该驱动的XPP中去查找。
    对于驱动组件中是否需要添加其它文件,要根据情况而定,例如声卡驱动如果带自己的声卡参数控制面板程序,则需要添加到你的驱动组件中去,但是如果是驱动的安装文件,例如setup.exe,则不需要添加到组件中。
    lzg_ad
    2009年8月26日 14:36
    版主
  • lzzg_ad您好,上面的问题我是这样解决的:

    尽管出现了键值的错误,但是我看到Import的最后结果是"successfully",而且注册表文件太多,不知道应该如何分析,所以我把这些错误都忽略了。
    最后在Target Designer里Build镜像的时候,出现找不到某些.dll等文件的报错,然后回到Componet Designer,用Add Files把找不到的文件都加上,Update组件之后,Build就没有问题了。
    不过这样做出来的驱动组件,只有显卡成功了,声卡、网卡、无线网卡以及视频采集卡都出现不能识别的问题(就是设备管理器里有黄色的问号)。

    是不是这样做完全错了,就是应该去找键值填上才对?

    2009年8月27日 3:07
  • 对,设备驱动程序不光包括驱动文件,注册表的信息也很重要,如果有太多的注册表信息提示导入错误的话,我想应该是会有问题的。
    你也可以换一种思路来做,例如在你做好的XPE中,通过设备管理器,升级那些带黄色叹号的设备驱动。当然,升级的目录和文件就要指向到你做驱动组件的那些inf文件和驱动文件。如果通过这种方式不能更新驱动的话,那你就要检查一下你手上的驱动程序了,如果可以升级成功,看看在升级的过程中,注册表都写入了哪些键值(可以通过InCtrl 来查),然后把这些注册表信息都添加到你的组件中去。
    lzg_ad
    2009年8月29日 16:39
    版主
  • 好的我明白了,谢谢
    2009年8月30日 2:24
  • 又学到了 呵呵


    聚信与共 ,创赢未来 微软中文技术论坛
    2009年8月30日 2:55
  • 我与到问题和这贴完全一样,看来我也要:
    “你也可以换一种思路来做,例如在你做好的XPE中,通过设备管理器,升级那些带黄色叹号的设备驱动。当然,升级的目录和文件就要指向到你做驱动组件的那些inf文件和驱动文件。如果通过这种方式不能更新驱动的话,那你就要检查一下你手上的驱动程序了,如果可以升级成功,看看在升级的过程中,注册表都写入了哪些键值(可以通过InCtrl 来查),然后把这些注册表信息都添加到你的组件中去。

    这样之后再来解决了,只是我不明白InCtrl是什么意思?

    2009年11月15日 14:26
  • 在网上下载了一个InCtrl5,使用了一下,可安装显卡后有好多注册表项添加啊,要这么做也好难,不过还好,已经完成了。
    2009年11月16日 11:07
  • 因为XPE是一个组件化的操作系统,所以XPE的注册表不像XPP的注册表那样完整,但你需要通过.inf导入注册表信息的时候,如果出现需要导入的目录结构和XPP不一致的话,就会出现不能Add的错误。
    对于这样的问题,则需要手动的创建注册表的目录和键值。具体的键值可以在INF文件中去找。或者在已经安装好该驱动的XPP中去查找。
    对于驱动组件中是否需要添加其它文件,要根据情况而定,例如声卡驱动如果带自己的声卡参数控制面板程序,则需要添加到你的驱动组件中去,但是如果是驱动的安装文件,例如setup.exe,则不需要添加到组件中。
    lzg_ad


    An error occurred when trying to add a registry resource HKEY_LOCAL_MACHINE\Software\INTEL\

    对于这样的问题,则需要手动的创建注册表的目录和键值

    是在XP上创建还是在xpe上创建呢?

    因为XPE是一个组件化的操作系统,所以XPE的注册表不像XPP的注册表那样完整,但你需要通过.inf导入注册表信息的时候,如果出现需要导入的目录结构和XPP不一致的话,就会出现不能Add的错误。-----这段没看明白!是权限问题还是已存在?


    If a man no any dream,then this man how to differentiate from salty fish !
    2010年4月21日 2:43
  • 为什么手动创建可以,但是Component Designer却无法创建呢?


    If a man no any dream,then this man how to differentiate from salty fish !
    2010年4月21日 2:45
  • 按照“lzg_ad:设备驱动程序组件开发教程”,使用Component Designerd软件通过菜单File->Import..导入驱动的.inf驱动配置文件,老说出错:

    *** Error ***:INF Importer could not find any recognizable installation to convert in the file
    No recognizable sections are found in the INF.

    后来还差点使用了传说中的另一个工具,EConvert.exe[在WES2009安装路径\Windows Embedded\Utilities中];

    但是分析另一个可以正常导入驱动的.inf文件,发现之前那个驱动的.inf文件写的有点似乎不规范,[Version] 段里头没有ClassGUID这个值,虽然在其他段中有这个GUID的值,但是名字不是ClassGUID={XXX}的形式,所以导入时老是报错。

     

    所以在[Version] 段里头添加入ClassGUID这个值,使用Component Designerd软件导入驱动正常!!!

    写出来以供大家借鉴


    Rn氡
    2011年5月14日 1:49