WDK环境搭建http://blog.csdn.net/spiderlily/article/details/8516439
通信的实现参照了这个帖子 http://bbs.pediy.com/showthread.php?p=446641
我的第一个驱动层与应用层的通信程序实现搞了好长时间,同时鉴于我太菜,太官方的东西有时候需要把问题搞定了回头才能看懂,所以此篇记录本着通俗易懂非专业形式写出来,对于像这我样菜级别的希望能有所帮助。
新建个ddk项目,头文件中添加以下类似如下的项:
const ULONG IOCTL_IN= (ULONG)CTL_CODE(FILE_DEVICE_DRIVER17, 0x800, METHOD_IN_DIRECT, FILE_ANY_ACCESS)&0x0000FFFF;
const ULONG IOCTL_OUT =(ULONG)CTL_CODE(FILE_DEVICE_DRIVER17, 0x801, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)&0x0000FFFF;
const ULONG IOCTL_BUFFERED =(ULONG)CTL_CODE(FILE_DEVICE_DRIVER17, 0x802, METHOD_BUFFERED, FILE_ANY_ACCESS)&0x0000FFFF;
const ULONG IOCTL_NEITHER= (ULONG)CTL_CODE(FILE_DEVICE_DRIVER17, 0x803, METHOD_NEITHER, FILE_ANY_ACCESS)&0x0000FFFF;
关于CTL_CODE函数:
通信的实现参照了这个帖子 http://bbs.pediy.com/showthread.php?p=446641
我的第一个驱动层与应用层的通信程序实现搞了好长时间,同时鉴于我太菜,太官方的东西有时候需要把问题搞定了回头才能看懂,所以此篇记录本着通俗易懂非专业形式写出来,对于像这我样菜级别的希望能有所帮助。
新建个ddk项目,头文件中添加以下类似如下的项:
const ULONG IOCTL_IN= (ULONG)CTL_CODE(FILE_DEVICE_DRIVER17, 0x800, METHOD_IN_DIRECT, FILE_ANY_ACCESS)&0x0000FFFF;
const ULONG IOCTL_OUT =(ULONG)CTL_CODE(FILE_DEVICE_DRIVER17, 0x801, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)&0x0000FFFF;
const ULONG IOCTL_BUFFERED =(ULONG)CTL_CODE(FILE_DEVICE_DRIVER17, 0x802, METHOD_BUFFERED, FILE_ANY_ACCESS)&0x0000FFFF;
const ULONG IOCTL_NEITHER= (ULONG)CTL_CODE(FILE_DEVICE_DRIVER17, 0x803, METHOD_NEITHER, FILE_ANY_ACCESS)&0x0000FFFF;
关于CTL_CODE函数: