类对象支持库(旁路插件 supportlib.winusb)。路径:支持库 → 扩展类库 → WinUSB类。
用户态访问已绑定 WinUSB / 厂商 WinUSB 栈 的 USB 设备:枚举、打开、控制传输、批量/中断读写。动态加载系统 winusb.dll,免费。
类型名必须写完整「WinUSB类」。
硬约束
- 类型名必须写「WinUSB类」。
- 设备须在系统里使用 WinUSB 驱动;普通大容量存储/键鼠等默认驱动打开会失败(见
取错误())。 - 管道 ID、控制码布局以 厂商 USB 文档 为准。
- 不做全局钩子;只打开你指定的路径/索引。
- Windows 7 及以上(推荐 10/11);无
winusb.dll时会提示环境不完整。
快速开始
WinUSB类 u
如果 (!u.枚举()) {
输出(u.取错误())
返回 ()
}
计次循环 (整数 i = 0; i < u.取设备数(); i++) {
输出(u.取友好名(i) + " | " + u.取设备路径(i))
}
' 仅当该设备确为 WinUSB 时:
' 如果 (u.打开索引(0)) {
' 输出(u.取管道列表())
' 字节集 出 = u.批量读(0x81, 64)
' u.关闭()
' }
方法一览
逻辑 枚举([文本 硬件ID过滤])/整数 取设备数()/文本 取设备路径|取友好名|取硬件ID(整数 索引)逻辑 打开(文本 路径)/逻辑 打开索引(整数 索引)/逻辑 声明接口([整数 接口号=0])/关闭()逻辑 控制传输(请求类型, 请求, 值, 索引, 字节集 数据, [输出容量], [超时])逻辑 批量写(管道ID, 字节集)/字节集 批量读(管道ID, [最大字节], [超时])文本 取管道列表()/整数 取管道数()/字节集 取输出()/文本 取错误()
选型
| 需求 | 建议 |
|---|---|
| COM 口文本/字节流 | 串口类 |
| 通用厂商 IOCTL / SetupAPI | 设备类 |
| WinUSB 批量/控制 | WinUSB类(本文) |
| HID 报表 | HID类 |