一个 WCID设备,其中WCID代表“ w ^ INDOWS Ç ompatible ID ”,是一种USB设备,可提供额外的信息,在Windows系统中,为了便于驱动程序自动安装,并在某些情况下,允许即时访问。
WCID 允许 Windows 应用程序几乎在插入后立即使用设备,这与既不是HID也不是 大容量存储的 USB 设备 需要最终用户执行手动驱动程序安装的通常情况相反 。因此,WCID 可以将 HID 和大容量存储的“即插即用”功能引入 任何 USB 设备(具有 WCID 感知固件)。
WCID 是WinUSB 设备 功能的扩展, 由 Microsoft 在 Windows 8 开发人员预览版期间提出,它使用自 Windows XP SP2 以来一直是 Windows 一部分的功能(Microsoft 操作系统描述符或 MOD)。
截至 2012 年 5 月,从 Windows Vista 开始的所有平台上都提供了自动 WinUSB WCID 驱动程序。在 Windows 8 或更高版本上,它是系统本机的,这意味着不需要上网来安装驱动程序,而对于 Vista 和 Windows 7,它将通过 Windows 更新从 Internet 获取。
历史在 WCID 之前,只有属于受良好支持的类别的 USB 设备,如 HID(USB 键盘、鼠标、游戏杆等)或 大容量存储 (USB 磁盘、基于闪存的存储、媒体播放器,如 iPod 等)不需要干预对于驱动程序安装,因为 Windows 会在设备第一次插入时自动处理。另一方面,其他设备通常需要自己手动提供和安装驱动程序。这从易用性和减损限制的人,谁不熟悉Windows下的驱动程序安装过程中,要使用通用的USB应用,例如基于的那些能力 的libusb, LibUsbDotNet, libusb的-win32的, libusbK 或WinUSB。
但是,HID 或大容量存储设备的自动驱动程序安装方法(依赖公共类,而不是特定设备 ID)和提供特定操作系统相关设备信息(Microsoft 操作系统描述符)的方法,自 Windows 以来就已存在XP SP2 实际上可以组合起来以允许自动安装任何类型的 USB 设备的驱动程序。
2011 年,微软 在 Windows 8 开发者预览版中通过更新的 WinUSB 驱动程序提出了WCID ,并被确认不仅适用于 WinUSB 设备。
2012 年,微软还在 Windows Update 中添加了 WinUSB WCID 驱动程序文件,从而为其他最新版本的 Windows 带来了 WCID 功能和自动安装 WinUSB 驱动程序的效果。
由于它极大地增强了用户体验,WCID 现在正被用于 USB 设备,例如 Android 设备、基准设备,预计还会有更多设备跟进。
例子以下是Zadig检测到的“WINUSB”WCID 设备的屏幕截图 。
在 Windows Vista 或更高版本上,此设备(既不是 HID 也不是大容量存储)可以通过 Windows 更新(Windows Vista、Windows 7)或本机(Windows 8)查看自动安装的驱动程序,无需任何形式的用户干预。
如果至少安装了一次 WinUSB WCID 驱动程序(即通用驱动程序),则同样可以在 Windows XP SP2 上实现。
WCID 对最终用户的意义是,只要设备是 WCID,并且具有相同通用兼容 ID 的 WCID 驱动程序在系统上或从 Windows 更新可用,插入设备时无需手动安装驱动程序. 相反,Windows 将自动执行驱动程序安装。
此外,Zadig 之类的应用程序 可以确保即使在 Microsoft 未提供 WCID 驱动程序的平台(例如 XP SP2)或使用非 Microsoft USB 驱动程序(libusb0、libusbK)时,仍然可以通过一个-time WCID 驱动程序安装,以便以后插入 WCID 设备时,您将无事可做。
因此,如果您是最终用户,并且您想要使用的设备既不是 HID 也不是大容量存储设备,您应该询问制造商它是否兼容 WCID。如果没有,您应该询问他们是否可以更新设备固件并将其转换为WCID,这对他们来说非常容易,因为这意味着这将大大增强您的用户体验。
总而言之,一旦制造商开始使用 WCID,您应该会发现几乎所有 Windows 上的 USB 设备实际上都可以即插即用,繁琐的 USB 驱动程序安装将成为过去。
制造商的 WCID显然,WCID 对设备制造商的主要优势在于,它减少了提供您自己的驱动程序或您自己的自定义驱动程序安装程序应用程序的需要,并就不属于完善的 USB 类别的设备的驱动程序要求教育用户. 如果您的用户希望通过 Windows 更新获取您的驱动程序,它还可以减轻您生产的每台设备都需要通过 WHQL 的需要。
对于任何运行 Windows Vista 或更高版本的用户,只要您使用 "WINUSB" 您的 WCID 类型(在兼容 ID 描述符中 - 见下文),就不需要更多了,WinUSB WCID 驱动程序,要么随操作系统一起提供,要么可以获取从 Windows 更新,将自动安装。因此,您可以开始开发 基于WinUSB 或 libusb的应用程序,而无需担心驱动程序安装。
对于未运行 Windows Vista 或更高版本的最终用户,或者如果您选择使用 libusb-win32 或libusbK 来开发您的应用程序,您可以简单地提供一次性 WCID 驱动程序安装程序应用程序,例如 Zadig 或 libwdi的 wdi-简单 (两者都是开源的并且可以根据您的需要进行定制),因为这些应用程序可以安装 WCID 版本的 WinUSB、libusb-win32 或 libusbK 驱动程序。
此外,虽然 WCID 需要添加额外的描述符,但此页面已投入大量精力以确保您拥有快速轻松(即接近零成本)部署 WCID 所需的所有信息,尤其是在简单的注册表检查时下面详述,使用 Zadig 或使用其他测试应用程序,例如 libusb示例应用程序 xusb (此处也提供 Windows 二进制版本 )或 Linux 的 usb-utils (更新为转储 Microsoft 操作系统描述符时)可以帮助验证您的描述符是否已正确设置。
有关 AVR 和 PIC 的实际 WCID 设备实现示例以及典型的 WCID USB 查询跟踪,请查看 示例部分。
如果积极的客户体验是您的优先事项之一,并且您希望降低开发和支持成本,您应该认真考虑在您的下一个设备中实施 WCID。