毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 嵌入式 >> 正文

如何在DeviceIoControl()调用IOCTL_×××对应功能

更新时间:2012-8-9:  来源:毕业论文

如何在DeviceIoControl()调wince5.0下ov9650部分摄像头驱动代码如下:
// show Camera 
// dwLenIn = 1 : Normal overlay
// dwLenIn = 4 : Alphablending 
// dwLenIn = 5 : Colorkey overlay
#define IOCTL_CAM_SHOW CTL_CODE( FILE_DEVICE_VIDEO, 1, METHOD_NEITHER,FILE_ANY_ACCESS)

// hide Camera 
#define IOCTL_CAM_HIDE CTL_CODE( FILE_DEVICE_VIDEO, 2, METHOD_NEITHER,FILE_ANY_ACCESS)

// Set Diplay position 
// dwLenIn = MAKELONG(left, top)
// dwLenOut = MAKELONG(width, height)
#define IOCTL_CAM_SETPOS CTL_CODE( FILE_DEVICE_VIDEO, 3, METHOD_NEITHER,FILE_ANY_ACCESS)
如果要在应用程序中通过DeviceIoControl()调用IOCTL_CAM_SHOW对应的功能函数,要在应用程序代码的头文件里怎么define呢?
IOCTL_×××对应功能其实没那么复杂,
你自己定义一个 IOCTL_CAM_SHOW 就可以。

在驱动里面

#define IOCTL_CAM_SHOW 1
然后在 IOCONTROL 里面处理
CODE 为 IOCTL_CAM_SHOW 的函数。

然后在应用里面一样

#define IOCTL_CAM_SHOW 1

DeviceIoControl()调用IOCTL_CAM_SHOW

就可以了~!
都是宏而已。作为DeviceIoControl的参数传进去的。
调用驱动一般都是CreateFile,得到handle,然后去调用DeviceIoControl。
DeviceIoControl的参数,就是一个代号你不用管他是什么
你也在应用中用驱动的
#define IOCTL_CAM_SHOW CTL_CODE( FILE_DEVICE_VIDEO, 1, METHOD_NEITHER,FILE_ANY_ACCESS)

// hide Camera  
#define IOCTL_CAM_HIDE CTL_CODE( FILE_DEVICE_VIDEO, 2, METHOD_NEITHER,FILE_ANY_ACCESS)
就能用的了,这是微软弄的一个宏,他表面上方便管理设备的一些控制字,如果我们重新写,我也不愿意这么写,麻烦。
請加上
#include <winioctl.h>

Paul, Chao @ Techware

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。