Easy USB 51 Programer Plus
当前位置: USB开发网 > USB开源项目 > Easy USB 51 Programer Plus

WinUSB简介

  平台提供的WinUSB不需要厂商针对USB厂商自定义设备另外再开发USB驱动程序(实际上其它一些标准设备类也可以用WinUSB作驱动),微软已经编写好这个驱动(WinUSB.sys)。再说,从Win7系统开始微软已经弃用WDK,而改用WDF作为驱动开发新模式了,以前以WDK为基础开发的驱动程序必须改用WDF再开发一次才能适用于新的操作系统,如果以前用DriverStudio等第三方辅助工具的话,在Windows XP版本后就不再更新了,所以说难度是非常的在,而WinUSB为我们提供了一种简便的方式,比之前用DriverStudio开发驱动更方便,因为WinUSB根本不需要我们开发驱动程序。

  不过WinUSB也不是万能的,也有一些局限。比如不适用所有Windows平台,在一些Windows平台上不支持同步传输(Isochronous Transfers)。 

Windows不同版本 对 WinUSB 的支持

Windows 版本 WinUSB 支持
Windows 10 Insider Preview 及更高版本 是²
Windows 7 是¹
Windows Server 2008 是²
Windows Vista 是²
Windows Server 2003
Windows XP 是³
Windows 2000

注:
是¹:此 Windows 版本的所有 SKU 在基于 x86、x64 和 Itanium 系统上都支持 WinUSB。
是²:此 Windows 版本的所有 SKU 在基于 x86 和 x64 的系统上都支持 WinUSB。
是³:Windows XP SP2 的所有客户端 SKU 都支持 WinUSB。WinUSB 不是 Windows XP 自带的程序,必须通过 WinUSB 辅助安装程序进行安装。
否:此版本的 Windows 不支持 WinUSB。

  WinUSB只支持 Windows XP SP2 以上系统(微软技术文档其它多处地方提到WinUSB需要Windows XP及以上系统,并没说明要SP2以上,这点在后面我将进行验证)。在Windows XP系统下安装WinUSB驱动需要一种叫辅助安装程序的东西,什么是辅助安装程序呢,在后面的实例中将会看到。

WinUSB 在不同 Windows 版本中支持的高级 USB 功能

功能 Windows 8.1 及更高版本 Windows 7/Vista/XP
设备 I/O 控制请求 支持 支持
同步传输 支持 不支持
批量、控制和中断传输 支持 支持
选择性暂停 支持 支持
远程唤醒 支持 支持

  WinUSB只有在Windows 8.1及更高版本中才支持同步传输,这一点请记住。

  与WinUSB设备通信,是通过一个叫WinUSB.dll的动态链接库提供的函数接口实现。在WinXp系统下WinUSB.dll在安装驱动程序时由辅助安装程序随WinUSB.sys一起被安装。Visual Studio 2012以上版本有提供生成WinUSB应用程序的向导,WinUSB 功能一次仅允许一个应用程序与设备通信。如果需要多个应用程序同时与设备通信,则必须实现一个函数驱动程序。

  在Windows 8以上系统中,可以不需要提供安装驱动程序所必须的inf文件,这个特性就像HID鼠标一样,使设备看起来就是个标准设备一样不需要安装驱动程序,这种机制其实是使用系统内置的inf文件,同时要求设备固件包含一种叫Microsoft OS 描述符的东西,这样设备首次插入PC后,就会自动安装WinUSB驱动程序。

  微软已经为我们提供了非常详尽的技术文档,只不过只有部分是中文的,大家可以在微软技术支持网站msdn.microsoft.com上搜索相关内容,这里我列出一些链供参考:

对WinUSB的介绍:
http://msdn.microsoft.com/zh-cn/library/ff540196.aspx

WinUSB (Winusb.sys) 安装
https://msdn.microsoft.com/zh-cn/library/ff540283.aspx

如何通过 WinUSB 功能访问 USB 设备
https://msdn.microsoft.com/zh-cn/library/ff540174.aspx

  另外微软还基于OSR USB FX2学习板提供了一个完整的实例,并配以详细的技术文档,只可惜是英文的(百合电子工作室USB专题站将会翻译此文档,并收录在本站的USB学习板配套光盘里)原文档下载地:http://download.microsoft.com/download/9/C/5/9C5B2167-8017-4BAE-9FDE-D599BAC8184A/WinUsb_HowTo.docx

展开全文
------分隔线----------------------------
百合电子工作室版权所有
Copyright @ baiheee electric studio
渝ICP备09006681号-4
联系方式




-->