阅读:1208回复:3
控制代码CTL怎么编写的啊
USB应用程序:
目前我的应用程序自己社定的两个双向PIPE CTL_CODE怎么编写的,它的默认PIPE是0吗? DeviceIoControl,DeviceControl,**_IOCTL_**_Handler之间的关系如何? 能请你帮忙解答一下我这菜鸟? |
|
沙发#
发布于:2004-09-03 16:02
我也是菜鸟,说的不对请见谅。
CTL_CODE里面就是你自己的应用程序了 默认的pipe就是0,control方式 应用程序里面调用DeviceIOcontrol,对应着驱动程序里面的Devicecontrol,就是说参数在这俩函数之间相互传递。 再DeviceControl里面用switch看I.IoctlCode值,转到相对应得,**_IOCTL_**_Handler |
|
板凳#
发布于:2004-09-03 16:03
switch (I.IoctlCode())
{ case POCKETDV_IOCTL_Read: status = POCKETDV_IOCTL_Read_Handler(I); break; case POCKETDV_IOCTL_Write: status = POCKETDV_IOCTL_Write_Handler(I); break; case POCKETDV_IOCTL_ReadWrite: status = POCKETDV_IOCTL_ReadWrite_Handler(I); break; default: // Unrecognized IOCTL request status = STATUS_INVALID_PARAMETER; break; } |
|
地板#
发布于:2004-09-03 16:24
你好,感谢你的解答!!!!
我最终是想清楚**_IOCTL_handler_** 里面的代码怎么编写 就如论坛里面有篇"10分钟开发一个USB驱动程序" 最后在**_IOCTL_handler_**里面加入了控制LED ON/OFF 的代码,可是我不清楚他是怎么工作的,能请你帮我解释一下吗 |
|