关于wince 注册表的问题

honglqin 2011-07-25 10:22:38
在platform.reg文件里经常可以看到注册表里有"Prefix","Dll","Index","Order","Profile","IClass","Flags"等这些键。
在这些键中我只知道前两个,一个上驱动前缀,一个是DLL文件名。其它的我都不知道是代表什么的了。有没有高手指点一下,谢谢了。

下面是NANDFLASH驱动的注册表的例子。
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NANDFLASH]
"Prefix"="DSK"
"Dll"="nandflash.dll"
"Index"=dword:1
"Order"=dword:0
"Profile"="NANDFLASH"
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
IF IMGHIVEREG
"Flags"=dword:1000
ENDIF IMGHIVEREG
...全文
48 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
honglqin 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 aaa_tnt 的回复:]
Order 是设备管理器加载顺序
Profile 是配置名称、对应 HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NANDFLASH
IClass 定义设备接口标识,A4E7EDDA-E575-4252-9D6B-4195D48BB865 是 块设备的标识。。常见的还有 电源管理
Flags 这个数值含义很多,,你可以查下MSDN,,算了……
[/Quote]

非常感谢啊!!
那个IClass的值是固定的还是自己定义的?如果是固定的,那么它是从哪来的?如果是自己定义的那又是怎么算出来的?
Ei 2011-07-25
  • 打赏
  • 举报
回复
Order 是设备管理器加载顺序
Profile 是配置名称、对应 HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NANDFLASH
IClass 定义设备接口标识,A4E7EDDA-E575-4252-9D6B-4195D48BB865 是 块设备的标识。。常见的还有 电源管理
Flags 这个数值含义很多,,你可以查下MSDN,,算了还是帮你贴上来吧。。
Flag Value Description
DEVFLAGS_NONE 0x00000000 No flags are defined.
DEVFLAGS_UNLOAD 0x00000001 Driver unloads after a call to the XXX_Init entry point or after the XXX_Init entry point returns. No error code is returned.
Bus Enumerator typically runs with this flag.

DEVFLAGS_LOADLIBRARY 0x00000002 Driver is loaded with LoadLibrary instead of LoadDriver.
DEVFLAGS_NOLOAD 0x00000004 Driver is not loaded.
DEVFLAGS_NAKEDENTRIES 0x00000008 Driver entry points do not have a XXX Prefix prepended.
DEVFLAGS_BOOTPHASE_1 0x00001000 Driver is loaded during boot phase one. By default, device drivers are loaded during boot phase two.
Boot phase zero is before the Device Manager loads.

Boot phase one is to find the registry.

Boot phase two is when initial device drivers load.

Boot phase three is after initial device drivers load.

DEVFLAGS_IRQ_EXCLUSIVE 0x00000100 Driver loads only when it has exclusive access to the IRQ.
DEVFLAGS_TRUSTEDCALLERONLY 0x00010000 Driver can only be opened by a trusted application.

常见的0x1000 标识在启动1阶段加载,通常配置HIVE会用到,说白了也就是加载HIVE起来之前去加载。
AndyZhang 2011-07-25
  • 打赏
  • 举报
回复
Power Manager interfaces. These list the interface classes that the Power
; Manager will monitor for new devices.
;
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Power/Interfaces]
"{A32942B7-920C-486b-B0E6-92A702A99B35}"="Generic power-manageable devices"
"{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}"="Power-manageable block devices"
; @CESYSGEN IF CE_MODULES_NDIS
"{98C5250D-C29A-4985-AE5F-AFE5367E5006}"="Power-manageable NDIS miniports"
; @CESYSGEN ENDIF CE_MODULES_NDIS
; @CESYSGEN IF CE_MODULES_GWES
"{EB91C7C9-8BF6-4a2d-9AB8-69724EED97D1}"="Power-manageable display"
; @CESYSGEN ENDIF CE_MODULES_GWES
指定的值,具体如何计算,我们就不关心了吧
Ei 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 honglqin 的回复:]
引用 1 楼 aaa_tnt 的回复:
Order 是设备管理器加载顺序
Profile 是配置名称、对应 HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NANDFLASH
IClass 定义设备接口标识,A4E7EDDA-E575-4252-9D6B-4195D48BB865 是 块设备的标识。。常见的还有 电源管理
Flags 这个……
[/Quote]
这个是WINCE系统定义的。。。
\PUBLIC\COMMON\SDK\INC\storemgr.h(
AndyZhang 2011-07-25
  • 打赏
  • 举报
回复
order:是一个dword类型的值,它提供支持顺序加载的机制。多个驱动程序需要同时加载时,系统该如何做呢?系统此时会通过注册表键order指定的值来先后加载驱动程序(值越小加载的越早)。如果某个驱动程序的这个键值不存在,那么这个驱动程序就会被最后加载。

Index:是一个dword类型值,他是组成设备名称的数字部分。之搁置可以根据需要进行设置,如果这个值不存在,那么设备管理器将会根据此类型其他驱动的索引线性连续的值动态分配一个与其他同类驱动不冲突的索引号。如前缀如果是com这个值是1,那就代表com1:如果是2,那就是串口2.

Iclass提供一种公开的不同系统的组件机制,Flags提供一种控制驱动加载路线的机制。

设置包含了注册表的文件系统驱动的profile,这个值是在介质的文件系统驱动对应的存储管理(storage manager)profile中设置,WINCE5.0及之后的版本的注册表信息如下:
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\<ProfileName>\<FileSystemName>]

"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}":表示这是块设备驱动
"Flags"=dword:00001000告诉设备管理器在hive-base注册表初始化的第一个阶段来加载驱动,也就是加载此nandflash驱动。

19,503

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧