首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

WinCE文件目录定制及内存调整 02

WinCE文件目录定制及内存调整 02

在Object Store中,WinCE系统会分配给每一个Object一个ID,被称为CEOID。每个Object的CEOID在Volume中都是唯一的。同样,在Object Store中的每一个Volume也有一个ID,被称为CEGUID,这样使用CEGUID和CEOID就可以在Object Store中找到相应的Object了。
  顺便介绍个函数:
  BOOL CeOidGetInfoEx( PCEGUID pceguid, CEOID oid, CEOIDINFO* poidInfo) 调用该函数可以获得Object Store中某个Object的信息,pceguid和oid是要查找对象的CEGUID和CEOID,poidInfo为Object的信息。
  那么如何获得CEGUID和CEOID呢?对于不同的Object类型,有不同的函数,如下:
  Directory or File:FindFirstFile(..) / FindNextFile(..) / GetFileInformationByHandler(..)
  Database:CeCreateDatabaseEx2(..) / CeFindNextDatabaseEx(..)
  Database record:CeSeekDatabaseEx(..) / CeReadRecordPropsEx(..) / CeWriteRecordPropsEx(..)
  Mounted Database volume:CeMountDBVol(..) / CeEnumDBVolumes(..)
  所以,在WinCE系统中,对内存的调节就是在调整Object Store和程序内存的大小。默认情况下是Storage Memory/Program Memory各占一半。有三种方法可以实现对内存的调整:
  1. 在config.bib文件中调整FSRAMPERCENT,具体如何设置在BIB文件的介绍中解释过,这里不多说了。
  2. 在OAL中调用pOEMCalcFSPages函数为Object Store分配内存。
  3. 在WinCE启动以后,进入系统的control panel,然后打开System,选择Memory在界面中进行调整。
  4. 通过函数SetSystemMemoryDivision(..)来调整。多说一句,可以通过调用GetSystemMemoryDivision(..)来获得当前Object Store的内存使用情况。
  关于Storage Memory和Program Memory的调整,主要还是看系统的需求,一般情况下Storage Memory不需要太大,可以根据自己的需要适当的调整。但是要注意,两部分内存都不能调整的太小,调整的太小会导致数据丢失,甚至是死机,到时候只能重起系统了。
返回列表