首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
USB设备驱动程序的设计
来源:本站整理  作者:佚名  2009-06-16 10:22:42



  1)启动DriverWizard,选择DriverWorks Project创造一个名为USBDIO的VC++项目;

  2)在驱动程序类型中选择WDM Driver,WDM Function Driver,在硬件设备所支持的总线类型中选择USB(WDM Only),在USB Vendor ID(厂商识别码)中填写0741,在USB Product ID(产品识别码)中填写0821;

  3)增加USB设备端点,设置端点2为批量输入/输出传输方式;

  4)在驱动程序支持的功能项中选择Read、Write、Device Control、Cleanup;

  5)选择自动产生批量读及批量写程序代码;

  6)在I/O请求IRP处理方式中选择None,即IRP不排队;

  7)在接口的打开方式中选择Symbolic link:UsbdioDevice,即应用程序以符号链接名打开设备;

  8)定义应用程序调用DeviceIoControl函数对WDM驱动程序通信的控制命令,结果如图2所示。

 

  图2 定义控制代码

  9)最后选择完成并确认生成新的项目信息,向导程序就会在usbdio目录中生成一个名为USBDIO的项目文件,其中包括了ISP1581驱动程序框架、模块及部分源代码。

  USB设备驱动程序的编程

  在使用DriverWizard生成驱动程序框架、模块及部分程序源代码后,开发者只需完成图2中三个控制代码所对应的三个功能模块的编程:模块USBDIO_IOCTL_ID_CODE_Handler的功能是从控制端点0读取数据,模块USBDIO_IOCTL_TEST_COMMAND_Handler的功能是向控制端点0发送一个控制命令,模块USBDIO_IOCTL_DMA_COMMAND_Handler的功能是向控制端点0发送一个要求USB设备进行DMA传输的控制命令,下面是第一个模块的编程实例。

  NTSTATUS USBDIODevice::USBDIO_IOCTL_ID_CODE_Handler(KIrp I)

  {

  NTSTATUS status = STATUS_SUCCESS;

  t << "Entering USBDIODevice::USBDIO_IOCTL_ID_CODE_Handler, " << I << EOL;

  PURB pUrb;

上一页  [1] [2] [3] [4] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:203,152.30000 毫秒