类对象支持库(旁路插件 supportlib.device)。路径:支持库 → 扩展类库 → 设备类。
用于 用户态 枚举本机设备(SetupAPI)并对 厂商已签名驱动 / 系统设备 发控制请求(DeviceIoControl)。不是写内核驱动,也 不进收费类。
类型名必须写完整「设备类」。
硬约束
- 类型名必须写「设备类」。
- 控制码、输入输出布局以 厂商文档 为准;本类只提供打开路径与收发缓冲。
- 按「设备信息类」枚举时可能没有可打开路径;需要路径时用
枚举类("disk")/usb/hid等接口类,或直接打开("\\\\.\\…")。 - 失败看
取错误();用户可见错误只谈「设备类」。 - 适用于 Windows 7 及以上(推荐 10/11)。勿在无管理员权限时强行打开受保护设备。
快速开始
设备类 d
如果 (!d.枚举类("disk")) {
输出(d.取错误())
返回 ()
}
整数 n = d.取设备数()
计次循环 (整数 i = 0; i < n; i++) {
输出(d.取友好名(i) + " | " + d.取设备路径(i))
}
' 对接厂商驱动示例(控制码/缓冲按文档填写;此处仅示意)
' 如果 (d.打开索引(0)) {
' 字节集 入 = {0}
' 如果 (d.控制(控制码, 入, 256)) {
' 字节集 出 = d.取输出()
' }
' d.关闭()
' }
枚举类 常用简称
| 简称 | 含义 |
|---|---|
disk / 磁盘 |
磁盘接口(通常有路径) |
volume / 卷 |
卷接口 |
usb |
USB 设备接口 |
hid / 人机 |
HID 接口 |
ports / 串口 |
端口类(可能无接口路径) |
net / 网络 |
网络接口 |
cdrom / 光驱 |
光驱接口 |
| 亦可直接写完整接口 GUID 文本 |
方法一览
逻辑 枚举([文本 接口GUID], [文本 硬件ID过滤])逻辑 枚举类(文本 设备类名, [文本 硬件ID过滤])整数 取设备数()/文本 取设备路径|取友好名|取硬件ID|取实例ID|取描述(整数 索引)逻辑 打开(文本 路径)/逻辑 打开索引(整数 索引)/逻辑 是否已打开()/关闭()逻辑 控制(整数 控制码, 字节集 输入, [整数 输出容量=4096])字节集 取输出()/整数 取输出长度()/文本 取错误()