您现在的位置: USB开发网 > USB技术文档 > USB PC驱动及应用程序
- USB PC驱动及应用程序

什么情况下不需要自己编写USB驱动,Windows自带哪些USB驱动

------分隔线----------------------------

   在开发USB设备时,应尽量使用USB协议已经定义好的标准设备,这样可以不需要自己编写设备驱动程序,因为编写驱动程序非常耗时。下面我们看看Windows系统都提供了哪些USB设备驱动程序。

Microsoft 提供的 USB 设备类驱动程序

USB-IF 类代码 设备安装程序类 Microsoft 提供的驱动程序和 INF Windows 支持 描述
音频 (01h)

媒体

{4d36e96c-e325-11ce-bfc1-08002be10318}

Usbaudio.sys

Wdma_usb.inf

Windows 8.1

Windows 8

Windows 7

Windows Server 2008

Windows Vista

Windows Server 2003

Windows XP

Windows 2000

Microsoft 通过 Usbaudio.sys 驱动程序为 USB 音频设备类提供支持。

通信和 CDC 控件 (02h)

端口

{4D36E978-E325-11CE-BFC1-08002BE10318}

Usbser.sys

Usbser.inf

Windows 10 Insider Preview

在 Windows 10 Insider Preview 中,已添加新的 INF Usbser.inf ,它可将 Usbser.sys 自动加载为函数驱动程序。

调制解调器

{4D36E96D-E325-11CE-BFC1-08002BE10318}

注意  支持子类 02h (ACM)

Usbser.sys

自定义引用 mdmcpq.inf 的 INF

Windows 8.1

Windows 8

Windows 7

Windows Server 2008

Windows Vista

在 Windows 8.1 和较早版本中,Usbser.sys 不能自动加载。若要加载驱动程序,你需要编写可引用调制解调器 INF (mdmcpq.inf) 并包含 [Install] 和 [Needs] 部分的 INF。

从 Windows Vista 开始,用户即可通过设置注册表值来启用 CDC 和无线移动 CDC (WMCDC) 支持

启用 CDC 支持时,USB 公用类通用父驱动程序将枚举对应于CDC 和 WMCDC 控制模型的接口集合,并为这些集合分配物理设备对象 (PDO)。

Net

{4d36e972-e325-11ce-bfc1-08002be10318}

注意  支持子类 0Eh (MBIM)

wmbclass.sys

Netwmbclass.inf

Windows 8.1

Windows 8

从 Windows 8 开始,Microsoft 提供 wmbclass.sys 驱动程序用于移动宽带设备。

HID(人体学接口设备) (03h)

HIDClass

{745a17a0-74d3-11d0-b6fe-00a0c90f57da}

Hidclass.sys

Hidusb.sys

Input.inf

Windows 8.1

Windows 8

Windows 7

Windows Server 2008

Windows Vista

Windows Server 2003

Windows XP

Windows 2000

Microsoft 提供了 HID 类驱动程序 (Hidclass.sys) 和微型类驱动程序 (Hidusb.sys),用以操作符合 USB HID 标准的设备。
物理设备 (05h) - - - 建议的驱动程序:WinUSB (Winusb.sys)
图像 (06h)

图像

{6bdd1fc6-810f-11d0-bec7-08002be2092f}

Usbscan.sys

Sti.inf

Windows 8.1

Windows 8

Windows 7

Windows Server 2008

Windows Vista

Windows Server 2003

Windows XP

Microsoft 提供了 Usbscan.sys 驱动程序,用于在 Windows XP 和更新版本的操作系统中管理 USB 数码相机和扫描仪。 这个驱动程序实现了 Windows 图像体系结构 (WIA) 的 USB 组件。
打印机 (07h)

USB

注意  Usbprint.sys 在设备安装程序类下枚举打印机设备:Printer{4d36e979-e325-11ce-bfc1-08002be10318}。

Usbprint.sys

Usbprint.inf

Windows 8.1

Windows 8

Windows 7

Windows Server 2008

Windows Vista

Windows Server 2003

Windows XP

Windows 2000

Microsoft 提供了 Usbprint.sys 类驱动程序,用以管理 USB 打印机。
大容量存储 (08h)

USB

Usbstor.sys

Windows 8.1

Windows 8

Windows 7

Windows Server 2008

Windows Vista

Windows Server 2003

Windows XP

Windows 2000

Microsoft 提供了 Usbstor.sys 端口驱动程序,用以通过 Microsoft 本机存储类驱动程序管理 USB 大容量存储设备。

SCSIAdapter

{4d36e97b-e325-11ce-bfc1-08002be10318}

子类 (06) 和协议 (62)

Uaspstor.sys

Uaspstor.inf

Windows 8.1

Windows 8

Uaspstor.sys 是用于支持批量流终结点的 SuperSpeed USB 设备的类驱动程序。
集线器 (09h)

USB

{36fc9e60-c465-11cf-8056-444553540000}

Usbhub.sys

Usb.inf

Windows 8.1

Windows 8

Windows 7

Windows Server 2008

Windows Vista

Windows Server 2003

Windows XP

Windows 2000

Microsoft 提供了 Usbhub.sys 驱动程序来管理 USB 集线器。

Usbhub3.sys

Usbhub3.inf

Windows 8.1

Windows 8

Microsoft 提供了 Usbhub3.sys 驱动程序来管理 SuperSpeed (USB 3.0) USB 集线器。

当 SuperSpeed 集线器连接到 xHCI 控制器时加载该驱动程序。

CDC 数据 (0Ah) - - - 建议的驱动程序:WinUSB (Winusb.sys)
智能卡 (0Bh)

SmartCardReader

{50dd5230-ba8a-11d1-bf5d-0000f805f530}

Usbccid.sys(已过时)

Windows 7

Windows Server 2008

Windows Vista

Windows Server 2003

Windows XP

Microsoft 提供了 Usbccid.sys 微型类驱动程序,用于管理 USB 智能卡读卡器。

请注意,对于 Windows Server 2003、Windows XP 和 Windows 2000,需要遵照特殊说明加载此驱动程序,因为此驱动程序的发布时间可能晚于这些操作系统的发布时间。

注意  

Usbccid.sys 驱动程序已替换为 UMDF 驱动程序 WUDFUsbccidDriver.dll。

WUDFUsbccidDriver.dll

WUDFUsbccidDriver.inf

Windows 8.1

Windows 8

WUDFUsbccidDriver.dll 是用户模式的驱动程序,用于 USB CCID 智能卡读取器设备。
内容安全性 (0Dh) - - - 建议的驱动程序:USB 通用父驱动程序 (Usbccgp.sys)。在 Usbccgp.sys 中实现了一些内容安全性功能。
视频 (0Eh)

图像

{6bdd1fc6-810f-11d0-bec7-08002be2092f}

Usbvideo.sys

Usbvideo.inf

Windows Vista

Windows XP

Microsoft 通过 Usbvideo.sys 驱动程序提供了 USB 视频类支持。

请注意,对于 Windows XP,需要遵照特殊说明加载此驱动程序,因为此驱动程序的发布时间可能晚于操作系统的发布时间。

个人医疗 (0Fh) - - - 建议的驱动程序:WinUSB (Winusb.sys)
音频/视频设备 (10h) - - -  
诊断设备 (DCh) - - - 建议的驱动程序:WinUSB (Winusb.sys)
无线控制器 (E0h)
注意  支持子类 01h 和协议 01h

蓝牙

{e0cbf06c-cd8b-4647-bb8a-263b43f0f974}

Bthusb.sys

Bth.inf

Windows 8.1

Windows 8

Windows 7

Windows Vista

Windows XP

Microsoft 提供了 Bthusb.sys 微型端口驱动程序,用于管理 USB 蓝牙无线电。
其他 (EFh)

Net

{4d36e972-e325-11ce-bfc1-08002be10318}

注意  支持子类 04h 和协议 01h

Rndismp.sys

Rndismp.inf

Windows 8.1

Windows 8

Windows 7

Windows Vista

Windows XP

在 Windows Vista 之前,CDC 支持仅限带有供应商特有协议 (bInterfaceProtocol) 值 0xFF 的特定于 RNDIS 的抽象控制模型 (ACM) 实现。RNDIS 设施在单独一个类驱动程序 Rndismp.sys 中集中了所有 802 式网卡的管理。远程 NDIS 与 USB 的映射是在 Usb8023.sys 驱动程序中实现的

应用程序特定 (FEh) - - - 建议的驱动程序:WinUSB (Winusb.sys)
供应商特定 (FFh) - - - 建议的驱动程序:WinUSB (Winusb.sys)

  如果你的应用符合以上特定类别就可以不需要自己编写设备驱动程序。

  细心的朋友可能注意到上面有些应该不是特定设备类型,比如应用程序特定和供应商特定等,这都是厂商自定义设备,Windows也为我们提供了相应的驱动程序,那就是WinUSB,不错,厂商自定义设备还可以使用WinUSB,这样就不需要我们自己编写USB驱动了,不过,WinUSB也有些局限,比如它在Windows8.1以下不支持同步传输模式(Isochronous Transfers)。

  当然,当你的设备有这些驱动不支持的功能时可能需要自己编写驱动,比如一些打印机应用,可能会有些特别的功能是厂商自己加进去的,并不是USB协议里有的功能。不过常见的标准设备类如HID设备类,Mass Storage大容量存储设备类等通常都不需要重新再编写驱动程序。、

  微软也建议以下情况不需要编写驱动程序:

  • 你的设备属于 Microsoft 支持的 USB 设备类。

在这种情况下,系统加载对应的类驱动程序作为设备驱动程序。有关 Windows 自带驱动程序的设备类的列表,请参阅 上表:Microsoft 提供的 USB 设备类驱动程序

  • 你的设备不属于设备类。

对于这类设备,可以对该设备的功能进行评估以决定是否能够加载 Microsoft 提供的 WinUSB (Winusb.sys) 作为该设备的函数驱动程序。 如果出现以下情况,则最佳解决方案是使用 WinUSB:

○你的设备由单个应用程序访问。
○你的设备支持批量、中断或常时等量终结点。
○你的设备将与运行 Windows XP Service Pack 2 (SP2) 以及更高版本的 Windows 的计算机一起使用。

通过加载 WinUSB 作为函数驱动程序,可提供更简单的备选方案来实施自定义 USB 驱动程序。例如,WinUSB 是仅由一个设备自带应用程序访问的电子气象站的首选方法。也可以用于与设备的诊断通信和刷新固件。

为了简化应用程序向 Winusb.sys 发送请求的过程,我们提供了用户模式的 DLL Winusb.dll,它可公开 WinUSB 功能。应用程序可以调用这些功能来访问和配置设备并将数据传输到该设备的终结点。

如果出现以下情况,WinUSB 将不可用:

○设备由多个应用程序访问。
○设备的功能受 Windows 操作系统内核模式的支持。例如,对于调制解调器功能(受 TAPI 支持)或 LAN 功能(受 NDIS 支持),你必须使用 Usbser.sys 驱动程序支持的接口才能通过用户模式软件管理调制解调器设备。

------分隔线----------------------------
联系我们
  • Q Q: 1148374829 点击这里给我发消息
  • 旺旺:jhoneqhsieh 点击这里给我发消息
  • 电话:(0)15923141204
  • 淘宝网店
USB开源项目