打印

请教CE系统下的硬盘驱动

[复制链接]
1539|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
聆风|  楼主 | 2008-6-23 15:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
准备在2440开发板上挂个硬盘. 自己写个硬盘驱动程序. 现在用RAM模拟一个硬盘OK. 这个RAM硬盘驱动在注册表文件中如下:
[HKEY_LOCAL_MACHINESystemStorageManagerProfilesRamDisk]
    "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            
[HKEY_LOCAL_MACHINEDriversBuiltInRamDisk]
   "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/AutoPart/AutoFormat 全部要设置为1. 否则虽然可以启动该驱动DLL文件. 但是是无法显示该盘符. 因此每次启动CE设备. CE都要分区/格式化一次我的硬盘. 请问为什么AutoMount/AutoPart/AutoFormat 要全部设置为1才能显示盘符. 

相关帖子

沙发
high| | 2008-6-25 05:26 | 只看该作者

把ram模拟成一个disk

automount配置1使得自动mount, 但你这块ram并不是disk, 没有mbr, 分区表和文件系统, 因此你无法看到盘符.如同一个刚买的没有fdisk过的硬盘. autopart和autoformat配置1可以自动分区和格式化.对ram盘是必要的, 对实际硬盘不必要的.

使用特权

评论回复
板凳
聆风|  楼主 | 2008-6-25 10:08 | 只看该作者

re谢楼上提醒

我昨天也想到这个问题. 与是我在分配一个1M的RAM空间做硬盘时候. 在这个空间起始处在驱动程序中直接将这个空间格式化为fat格式.人为加了MBR等信息进入.可是后来发现还是不行.一定要将AutoMount/AutoPart/AutoFormat 全部要设置为1才可以. 以下是全设置为1时候从串口输出的调试信息.
AutoFormat : 1 / AutoPart:1 / AutoMount:1                        
DllMain                        
RAMDISK: DLL_PROCESS_ATTACH                
RAMDISK: DSK_Init entered: 602ed68                
CreateDiskObject                        
RAMDISK : ActiveKey = DriversActive8            
RAMDISK : ActiveKey (copy) = DriversActive8 (@ 0x00037FC0)    
RAM: No Size entry specified in the registry            
RAM: No Address entry specified in the registry        
RAM: No SectorSize entry specified in the registry        
RAMDISK: sectors = 2048                    
RAMDISK: RAMInit returning 0x37f50                
RAMDISK: DSK_Open returning 229200                
DSK_IOControl --- DISK_IOCTL_INITIALIZED            
RAMDISK: DSK_Close entered                    
RAMDISK: DSK_Open returning 229200                
DSK_IOControl --- DISK_IOCTL_GETINFO            
DSK_IOControl --- IOCTL_DISK_DEVICE_INFO            
DSK_IOControl (device info)                
GetDeviceInfo--diskio.c                    
DSK_IOControl --- the others IOCTL                
DSK_IOControl --- DISK_IOCTL_GETINFO            
DSK_IOControl --- DISK_IOCTL_READ                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - reading 512 bytes at sector 0        
DSK_IOControl --- DISK_IOCTL_READ                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - reading 512 bytes at sector 0        
DSK_IOControl --- DISK_IOCTL_FORMAT_MEDIA            
DSK_IOControl --- DISK_IOCTL_GETINFO            
DSK_IOControl --- DISK_IOCTL_WRITE                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 4096        
RAMDISK:DoDiskIO - writing 4096 bytes at sector 0        
DSK_IOControl --- DISK_IOCTL_WRITE            
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 0        
DSK_IOControl --- DISK_IOCTL_READ                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - reading 512 bytes at sector 0        
DSK_IOControl --- DISK_IOCTL_READ            
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - reading 512 bytes at sector 0        
DSK_IOControl --- DISK_IOCTL_WRITE                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 2        
DSK_IOControl --- DISK_IOCTL_WRITE        
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 3        
DSK_IOControl --- DISK_IOCTL_WRITE                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 4        
DSK_IOControl --- DISK_IOCTL_WRITE        
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 5        
DSK_IOControl --- DISK_IOCTL_WRITE                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 6        
DSK_IOControl --- DISK_IOCTL_WRITE                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 7        
DSK_IOControl --- DISK_IOCTL_WRITE                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 8        
DSK_IOControl --- DISK_IOCTL_WRITE                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 9        
DSK_IOControl --- DISK_IOCTL_WRITE            
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 1        
DSK_IOControl --- DISK_IOCTL_WRITE                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 2        
DSK_IOControl --- DISK_IOCTL_WRITE                
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1    
RAMDISK:DoDiskIO - Bytes left for this sg 512        
RAMDISK:DoDiskIO - writing 512 bytes at sector 3        
DSK_IOControl --- DISK_IOCTL_WRITE                        
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1                        
RAMDISK:DoDiskIO - Bytes left for this sg 512                        
RAMDISK:DoDiskIO - writing 512 bytes at sector 4                        
DSK_IOControl --- DISK_IOCTL_WRITE                        
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1                        
RAMDISK:DoDiskIO - Bytes left for this sg 512                        
RAMDISK:DoDiskIO - writing 512 bytes at sector 5                        
DSK_IOControl --- DISK_IOCTL_WRITE                        
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1                        
RAMDISK:DoDiskIO - Bytes left for this sg 512                        
RAMDISK:DoDiskIO - writing 512 bytes at sector 6                        
DSK_IOControl --- DISK_IOCTL_WRITE                        
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1                        
RAMDISK:DoDiskIO - Bytes left for this sg 512                        
RAMDISK:DoDiskIO - writing 512 bytes at sector 7                        
DSK_IOControl --- DISK_IOCTL_WRITE                        
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1                        
RAMDISK:DoDiskIO - Bytes left for this sg 512                        
RAMDISK:DoDiskIO - writing 512 bytes at sector 8                        
DSK_IOControl --- DISK_IOCTL_WRITE                        
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1                        
RAMDISK:DoDiskIO - Bytes left for this sg 512                        
RAMDISK:DoDiskIO - writing 512 bytes at sector 9                        
DSK_IOControl --- DISK_IOCTL_READ                        
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1                        
RAMDISK:DoDiskIO - Bytes left for this sg 512                        
RAMDISK:DoDiskIO - reading 512 bytes at sector 1                        
DSK_IOControl --- DISK_IOCTL_WRITE                        
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1                        
RAMDISK:DoDiskIO - Bytes left for this sg 512                        
RAMDISK:DoDiskIO - writing 512 bytes at sector 1                        
DSK_IOControl --- DISK_IOCTL_READ                        
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1                        
RAMDISK:DoDiskIO - Bytes left for this sg 512                        
RAMDISK:DoDiskIO - reading 512 bytes at sector 0                        
DSK_IOControl --- IOCTL_DISK_GETINFO
DSK_IOControl --- DISK_IOCTL_GETINFO
DSK_IOControl --- DISK_IOCTL_WRITE
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1
RAMDISK:DoDiskIO - Bytes left for this sg 512
RAMDISK:DoDiskIO - writing 512 bytes at sector 2
DSK_IOControl --- DISK_IOCTL_WRITE
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1
RAMDISK:DoDiskIO - Bytes left for this sg 3072
RAMDISK:DoDiskIO - writing 3072 bytes at sector 3
DSK_IOControl --- DISK_IOCTL_WRITE
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1
RAMDISK:DoDiskIO - Bytes left for this sg 16384
RAMDISK:DoDiskIO - writing 16384 bytes at sector 9
DSK_IOControl --- DISK_IOCTL_WRITE
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1
RAMDISK:DoDiskIO - Bytes left for this sg 512
RAMDISK:DoDiskIO - writing 512 bytes at sector 2
DSK_IOControl --- the others IOCTL
DSK_IOControl --- IOCTL_DISK_DEVICE_INFO
DSK_IOControl (device info)
GetDeviceInfo--diskio.c
DSK_IOControl --- IOCTL_DISK_GETINFO
DSK_IOControl --- DISK_IOCTL_READ
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1
RAMDISK:DoDiskIO - Bytes left for this sg 512
RAMDISK:DoDiskIO - reading 512 bytes at sector 2
RAMDISK:DoDiskIO - Bytes left for this sg 512
RAMDISK:DoDiskIO - reading 512 bytes at sector 2
DSK_IOControl --- DISK_IOCTL_READ
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1
RAMDISK:DoDiskIO - Bytes left for this sg 512
RAMDISK:DoDiskIO - reading 512 bytes at sector 3
DSK_IOControl --- DISK_IOCTL_READ
RAMDISK:DoDiskIO - Number of scatter/gather descriptors 1
RAMDISK:DoDiskIO - Bytes left for this sg 512
RAMDISK:DoDiskIO - reading 512 bytes at sector 9

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

171

主题

559

帖子

0

粉丝