WINCE 流驱动接口各函数之间的关系

/*****************************************************

 *作       者:温子祺

 *联系方式 :wenziqi@hotmail.com

 *说       明:WINCE 流驱动接口各函数之间的关系

  *****************************************************/

 

以S3C2440的BSP包中的IIC驱动为例,IIC驱动主要包含drv.c,drv.h,I2C.c等文件。在drv.c我们好特别注意两个函数:

 

代码
PI2C_CONTEXT
I2C_Init(
PVOID Context
)






PI2C_CONTEXT
I2C_Open(
PI2C_CONTEXT pI2C,
// context returned by I2C_Init.
DWORD AccessCode, // @parm access code
DWORD ShareMode // @parm share mode
)

代码分析:

(1)[I2C_Init函数]:在该函数当中,输入参数为Context,参数类型为PVOID,Context参数实质为注册表路径的HKLM\Drivers\Active\xx的值(01~),函数的返回值为PI2C_CONTEXT类型,特别注意该函数的返回值,如果该返回值是0或者是NULL,驱动不会加载成功的。当该返回值有效时,驱动就会加载成功,并且该返回值会被作为I2C_Open函数中的第一个参数,即PI2C_CONTEXT pI2C。

(1)[I2C_Open函数]:在该函数当中,要注意的是PI2C_CONTEXT pI2C参数,该参数是I2C_Init函数的有效的返回值。当I2C_Open函数返回值为0或者NULL时,上层软件使用CreateFile函数会失败。当该函数的返回值有效时,上层软件使用CreateFile函数会成功,并且该返回值作为其他流接口函数的参数,如I2C_Read、I2C_Write、I2C_IOControl等函数。

 

转载请注明出处,谢谢!

 

原文地址:https://www.cnblogs.com/wenziqi/p/1822027.html