我在CE5中写了个基于RAM的block驱动. 现在已经可以在CE目标板上显示一个盘符并且可以存储文件等等. 以下是该驱动的注册表文件.
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\RamDisk]
"Name"="RAM Disk Block Device" ;指名称
"Folder"="RAM Disk" ;指目录名
"DefaultFileSystem"="FATS" ;指明这个存储设备采用的文件系统
"PartitionDriver"="mspart.dll" ;指明分区驱动程序
"AutoMount"=dword:1 ;指如果检测到分区后就自动安装文件系统
"AutoPart"=dword:1 ;指如果没有分区则自动将最大可用空间划分成一个分区
"AutoFormat"=dword:1 ;指如果没有格式化则自动格式化
"MountFlags" = dword:0 ;指文件系统如何别安装. 1为指定一个隐藏文件系统.
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\RamDisk]
"Prefix"="DSK"
"Dll"="ramdisk.dll"
"Order"=dword:0
"FriendlyName" = "Windows CE Ramdisk Driver"
"Ioctl" = dword:4
"Profile"="RamDisk"
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
我想将这个驱动改成一个硬盘驱动. 于是先将注册表中格式化等子键去掉为:
"AutoMount"=dword:1 ;指如果检测到分区后就自动安装文件系统
"AutoPart"=dword:1 ;指如果没有分区则自动将最大可用空间划分成一个分区
"AutoFormat"=dword:0 ;指如果没有格式化则自动格式化
编译后发现系统可以找到并运行DLL文件. 但在CE目标板上不能显示这个盘符. 并且一定要AutoMount/AutoPart/AutoFormat全部为1的时候才显示盘符. 这是什么原因?