前面部分请看“WinCE流驱动的各函数的分析整理1”
7)BOOL XXX_IOControl(DWORD hOpenContext, DWORD dwCode, PBYTE pBufIn, DWORD dwLenIn, PBYTE pBufOut, DWORD dwLenOut, PDWORD pdwActualOut);
hOpenContext:XXX_Open返回值。
dwCode:控制命令字,由DeviceIoControl传入。
pBufIn:指向输入缓冲区,由DeviceIoControl传入。
dwLenIn:输入内容的长度,由DeviceIoControl传入。
pBufOut:指向输出缓冲区,由DeviceIoControl传入。
dwLenOut:输出缓冲区长度,由DeviceIoControl传入。
pdwActualOut:实际输出数据长度,由DeviceIoControl传入。
功能:用于向设备发送命令,应用程序通过DeviceIoControl调用来实现该功能。要调用这个接口还需要在应用层和驱动之间建立一套相同的命令,通过宏定义CTL_CODE来实现,当然如果不喜欢用CTL_CODE来实现,也可以用一个常数来实现(其实CTL_CODE宏最终生成的也是一个常数,但更便于理解与维护,所以建议使用CTL_CODE)。
8)void XXX_PowerDown(DWORD hDeviceContext);
hDeviceContext:XXX_Init的返回值。
功能: 负责设备的上电控制。与XXX_PowerUp均为电源管理使用,微软提供这两个函数的主要目的是为了对以前版本代码的兼容,但由于功能远没有XXX_IOControl功能强大,故一般并不使用这两个函数。
9)void XXX_PowerUp(DWORD hDeviceContext);
hDeviceContext:XXX_Init的返回值。
功能:负责设备的断电控制。
10) DWORD IOC_Seek(DWORD hOpenContext, long Amount, WORD Type)
hOpenContext:XXX_Open返回值。
Amount:指针的偏移量,由 SetFilePointer 传入。
Type:指针的偏移方式,由 SetFilePointer 传入。
功能:将设备的数据指针指向特定的位置,应用程序通过SetFilePointer函数间接调用。不是所有设备的属性上都支持这项功能。
文章评论(0条评论)
登录后参与讨论