wince bsp中oal层中的oemiocontrol介绍

wince bsp中oal层中的oemiocontrol介绍

ID:24635756

大小:50.50 KB

页数:3页

时间:2018-11-15

wince bsp中oal层中的oemiocontrol介绍_第1页
wince bsp中oal层中的oemiocontrol介绍_第2页
wince bsp中oal层中的oemiocontrol介绍_第3页
资源描述:

《wince bsp中oal层中的oemiocontrol介绍》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、WinCEBSP中OAL层中的OEMIoControl介绍  在IoControl(..)的函数。可以说OEMIoControl是一个很有用的IoControl函数,这样应用程序和驱动程序就可以访问到OAL中的资源了。但在IoControl中的case受到了限制,只有下面的这些case是可以让应用程序访问的:IOCTL_HAL_GET_CACHE_INFOIOCTL_HAL_GET_DEVICE_INFOIOCTL_HAL_GET_DEVICEIDIOCTL_HAL_GET_UUIDIOCTL_PRO

2、CESSOR_INFORMATION  如果用户在应用程序中试图访问其他的case,肯定会返回失败的。在IoControl中的任何case。也许有人会问,那么我们如何让应用程序也访问到一些case呢??  办法还是有的,可以看一下IoControl函数被定义在BSP中的OAL部分,上面已经提到,应该是ioctl.c或者oemioctl.c,但是在IoControl函数和以前也有了变化,该函数会查一个表:g_oalIoCtlTable[]。该表实际上是一个结构数组,定义了OEMIoControl中所有的

3、case,已经针对这个case的处理函数,还包括一个针对每个case的flag,该flag表示是否使用临界区保护。具体定义如下:typedefstruct{ UINT32code; UINT32flags; BOOL(*pfnHandler)(UINT32,VOID*,UINT32,VOID*,UINT32,UINT32*);}OAL_IOCTL_HANDLER,*POAL_IOCTL_HANDLER;  所以,在AGE_SIGNED_STATE,     0,OALIoCtlHalGetImageS

4、ignedState},{IOCTL_HAL_QUERY_FORMAT_PARTITION,    0,OALIoCtlHalQueryFormatPartition},{0,                                           0,NULL}};  在OEMIoControl函数中,我们不光要实现OEMIoControl中的case,有一些全局的OAL变量我们也需要定义:  g_oalIoCtlClockSpeedThisglobalvariablecontainsi

5、nformationabouttheprocessorclockspeed.g_oalIoCtlInstructionSetThisglobalvariablecontainstheprocessorinstructionsetidentifier.g_oalIoCtlPlatformOEMThisglobalvariablecontainsinformationaboutthehardOEM.g_oalIoCtlPlatformTypeThisglobalvariablecontainsinform

6、ationaboutthehardtype.g_oalIoCtlProcessorCoreThisglobalvariablecontainsinformationabouttheprocessorcore.g_oalIoCtlProcessorNameThisglobalvariablecontainsinformationabouttheprocessorname.g_oalIoCtlProcessorVendorThisglobalvariablecontainsinformationabout

7、theprocessorvendor.  其实都是一些硬件及平台的相关信息,定义一下就可以了。  有时根据具体需要,我们还希望在OEMIoControl函数中添加自己定义的case,这个比较简单,只要定义个case,然后在这个case下写你的实现代码就可以了,驱动程序通过KernelIoControl调用同样的case就可以调用到你在OEMIoControl中定义的case了。关于case值得定义,一般都在2048到4096之间会比较安全,我记得在WinCE6.0下,看微软的代码好像256以上就可以了

8、,具体没有试过,要是保险的话,还是用2048以上的值吧。——感谢阅读这篇文章,..,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。