IDS USB Manipulator Tools

本文档展示了如何使用DevCon和PNPUtil工具来管理设备和驱动程序,包括查看设备状态、枚举驱动程序包、安装/卸载驱动、启用/禁用设备以及更新设备。这些工具对于系统管理员进行设备驱动程序的日常维护至关重要。

Escalation#1125

通用串行总线控制器
 └─ Intel(R) USB 3.0 可扩展主机控制器 - 1.0 (Microsoft)
    └─ USB 根集线器(USB 3.0)
       ├─ 通用 USB 集线器
       │  └─ USB Composite Device
       └─ uEye UI-336x Series

在这里插入图片描述

DevCon

C:\dbin>devcon help
Device Console Help:
devcon [-r] [-m:\\<machine>] <command> [<arg>...]
-r           Reboots the system only when a restart or reboot is required.
<machine>    Specifies a remote computer.
<command>    Specifies a Devcon command (see command list below).
<arg>...     One or more arguments that modify a command.
For help with a specific command, type: devcon help <command>
classfilter          Add, delete, and reorder class filters.
classes              List all device setup classes.
disable              Disable devices.
driverfiles          List installed driver files for devices.
drivernodes          List driver nodes of devices.
enable               Enable devices.
find                 Find devices.
findall              Find devices, including those that are not currently attached.
help                 Display Devcon help.
hwids                List hardware IDs of devices.
install              Install a device manually.
listclass            List all devices in a setup class.
reboot               Reboot the local computer.
remove               Remove devices.
rescan               Scan for new hardware.
resources            List hardware resources for devices.
restart              Restart devices.
sethwid              Modify Hardware ID's of listed root-enumerated devices.
stack                List expected driver stack for devices.
status               List running status of devices.
update               Update a device manually.
updateni             Manually update a device (non interactive).
dp_add               Adds (installs) a third-party (OEM) driver package.
dp_delete            Deletes a third-party (OEM) driver package.
dp_enum              Lists the third-party (OEM) driver packages installed on this machine.

PnPUtil

C:\dbin>pnputil help
Microsoft PnP 工具

PNPUTIL [/add-driver <...> | /delete-driver <...> |
         /export-driver <...> | /enum-drivers |
         /enum-devices [<...>] | /enum-interfaces [<...>] |
         /disable-device <...> | /enable-device <...> |
         /restart-device <...> | /remove-device <...> |
         /scan-devices [<...>] | /?]

命令:

  /add-driver <filename.inf | *.inf> [/subdirs] [/install] [/reboot]

    将驱动程序包添加到驱动程序存储中。
      /subdirs - 遍历驱动程序包的子目录。
      /install - 在任何匹配的设备上安装/更新驱动程序。
      /reboot - 根据需要重新启动系统以完成此操作。

    示例:
      添加驱动程序包:
        pnputil /add-driver x:\driver.inf
      添加多个驱动程序包:
        pnputil /add-driver c:\oem\*.inf
      添加和安装驱动程序包:
        pnputil /add-driver device.inf /install

  /delete-driver <oem#.inf> [/uninstall] [/force] [/reboot]

    从驱动程序存储中删除驱动程序包。
      /uninstall - 从任何使用驱动程序包的设备中卸载驱动程序包。
      /force - 删除驱动程序包,即使有设备正在使用它。
      /reboot - 根据需要重新启动系统以完成此操作。

    示例:
      删除驱动程序包:
        pnputil /delete-driver oem0.inf
      强制删除驱动程序包:
        pnputil /delete-driver oem1.inf /force

  /export-driver <oem#.inf | *> <目标目录>

    从驱动程序存储中将驱动程序包导出到目标目录中。

    示例:
      导出驱动程序包:
        pnputil /export-driver oem6.inf .
      导出所有驱动程序包:
        pnputil /export-driver * c:\backup

  /enum-drivers

    枚举驱动程序存储中的所有第三方驱动程序包。

    示例:
      枚举所有 OEM 驱动程序包:
        pnputil /enum-drivers

  /disable-device <实例 ID> [/reboot]

    禁用系统上的设备。
      /reboot - 根据需要重新启动系统以完成此操作。

    示例:
      禁用设备:
        pnputil /disable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"

  /enable-device <实例 ID> [/reboot]

    启用系统上的设备。
      /reboot - 根据需要重新启动系统以完成此操作。

    示例:
      启用设备:
        pnputil /enable-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"

  /restart-device <实例 ID> [/reboot]

    重启系统上的设备。
      /reboot - 根据需要重新启动系统以完成此操作。

    示例:
      重启设备:
        pnputil /restart-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"

  /remove-device <实例 ID> [/subtree] [/reboot]

    尝试从系统中删除设备。
      /subtree - 删除整个设备子树,包括任何子设备。
      /reboot - 根据需要重新启动系统以完成此操作。

    示例:
      删除设备:
        pnputil /remove-device "USB\VID_045E&PID_00DB\6&870CE29&0&1"

  /scan-devices [/instanceid <实例 ID>] [/async]

    扫描系统以查找任何设备硬件更改。
      /instanceid <实例 ID> - 在设备子树中扫描更改。
      /async - 异步扫描更改。

    示例:
      扫描设备:
        pnputil /scan-devices

  /enum-devices [/connected | /disconnected] [/instanceid <实例 ID>]
                [/class <name | GUID>] [/problem [<code>]] [/ids] [/relations]
                [/drivers]

    枚举系统上的所有设备。
      /connected | /disconnected - 按连接的设备筛选或
                                   按断开连接的设备筛选。
      /instanceid <实例 ID> - 按设备实例 ID 筛选。
      /class <名称 | GUID> - 按设备类名称或 GUID 筛选。
      /problem [<代码>] - 按出现问题的设备筛选或
                          按特定问题代码筛选。
      /ids - 显示硬件 ID 和兼容 ID。
      /relations - 显示父级和子级设备关系。
      /drivers - 显示匹配的驱动程序和已安装的驱动程序。

    示例:
      仅枚举系统上已连接的设备:
        pnputil /enum-devices /connected
      枚举具有特定实例 ID 的设备:
        pnputil /enum-devices /instanceid "ACPI\PNP0A08\1"
      枚举具有特定类的所有设备:
        pnputil /enum-devices /class Display
        pnputil /enum-devices /class {4d36e97d-e325-11ce-bfc1-08002be10318}
      枚举具有特定问题代码的所有设备:
        pnputil /enum-devices /problem 28
        pnputil /enum-devices /problem 0xA
      枚举具有问题的所有设备并显示硬件/兼容 ID:
        pnputil /enum-devices /problem /ids

  /enum-interfaces [/enabled | /disabled] [/class <GUID>]

    枚举系统上的所有设备接口。
      /enabled | /disabled - 按启用的接口筛选或
                             按禁用的接口筛选。
      /class <GUID> - 按接口类 GUID 筛选。

    示例:
      仅枚举系统上的已启用接口:
        pnputil /enum-interfaces /enabled
      枚举具有特定接口类 GUID 的所有接口:
        pnputil /enum-interfaces /class {884b96c3-56ef-11d1-bc8c-00a0c91405dd}

  /?

    显示使用情况屏幕。
C:\Users\Administrator>devcon status usb*
USB\VID_05E3&PID_0626\5&268ECA43&0&16
    Name:     Driver is running.
USB\VID_ABCD&PID_1234\2201122129200789599012
    Name: USB     Driver is running.
USB\VID_04F2&PID_B6D9&MI_00\6&850BCBA&0&0000
    Name: Integrated Camera
    Driver is running.
USB\ROOT_HUB30\7&A419A9B&0&0
    Name: USB     Driver is running.
USB\VID_04F2&PID_B6D9\0001
    Name: USB Composite Device
    Driver is running.
USB\VID_8087&PID_0026\5&268ECA43&0&10
    Name:     Driver is running.
USB\VID_06CB&PID_00BD\36F193557C26
    Name: Synaptics UWP WBDI
    Driver is running.
USB\ROOT_HUB30\4&23DFFF7F&0&0
    Name: USB     Driver is running.
USB\VID_1C4F&PID_0034\6&9012D41&0&1
    Name: USB     Driver is running.
USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0
    Name: General UDisk USB Device
    Driver is running.
USB\VID_05E3&PID_0610\5&268ECA43&0&4
    Name:     Driver is running.
11 matching device(s) found.

UDisk => USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0

C:\dbin>devcon hwids *udisk*
USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0
    Name: General UDisk USB Device
    Hardware IDs:
        USBSTOR\DiskGeneral_UDisk___________5.00
        USBSTOR\DiskGeneral_UDisk___________
        USBSTOR\DiskGeneral_
        USBSTOR\General_UDisk___________5
        General_UDisk___________5
        USBSTOR\GenDisk
        GenDisk
    Compatible IDs:
        USBSTOR\Disk
        USBSTOR\RAW
        GenDisk
1 matching device(s) found.
C:\dbin>devcon status *udisk*
USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0
    Name: General UDisk USB Device
    Driver is running.
1 matching device(s) found.
C:\dbin>devcon status "@USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0"
USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0
    Name: General UDisk USB Device
    Driver is running.
1 matching device(s) found.
C:\dbin>devcon disable "@USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0"
USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0: Disabled
1 device(s) disabled.

C:\dbin>devcon status "@USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0"
USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0
    Name: General UDisk USB Device
    Device is disabled.
1 matching device(s) found.
C:\dbin>devcon enable "@USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0"
USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0: Enabled
1 device(s) are enabled.

C:\dbin>devcon status "@USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0"
USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0
    Name: General UDisk USB Device
    Driver is running.
1 matching device(s) found.
C:\dbin>devcon remove "@USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0"
USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0: Removed
1 device(s) were removed.

C:\dbin>devcon status "@USBSTOR\DISK&VEN_GENERAL&PROD_UDISK&REV_5.00\2201122129200789599012&0"
No matching devices found.
C:\dbin>devcon rescan
Scanning for new hardware.
Scanning completed.
### Manipulator 的定义与应用 在编程和机器人学领域,`manipulator` 是指一种用于控制或操作对象的工具或设备。具体来说,在机器人技术中,它通常指的是机械臂或其他能够执行物理任务的装置[^1]。 #### 1. Robotics Context 在机器人学背景下,`manipulator` 主要是指 **机械手** 或 **机械臂**,这是一种由多个关节组成的可移动结构,可以抓取、移动物体并完成复杂的动作。这种类型的 manipulator 常见于工业自动化场景以及服务型机器人中。例如,Underactuated Robotics 中提到的内容涉及如何设计具有欠驱动特性的操纵器来实现特定功能。 以下是典型的机械臂控制系统架构: ```python class RobotManipulator: def __init__(self, joints): self.joints = joints def move_to(self, target_position): # 计算逆运动学解 joint_angles = inverse_kinematics(target_position) # 设置各关节角度 for i, angle in enumerate(joint_angles): self.set_joint_angle(i, angle) def set_joint_angle(self, index, angle): # 更新指定关节的角度 pass ``` #### 2. Programming Context 在更广泛的编程语境下,`manipulator` 可能被用来描述任何负责数据处理或转换的对象。比如 C++ 流中的标准库函数 `std::setw`, `std::setprecision` 等都可以视为流控制器 (stream manipulators),它们调整输入/输出格式的行为方式[^3]。 对于增强现实界面的设计而言,Frank Regal 等人的研究展示了如何通过 AR 技术构建命令与监控大型多代理团队的人机交互方案[^2]。这表明即使是在虚拟环境中,“操控者”的角色依然重要——无论是实际硬件还是软件模拟版本都需要精确规划路径及行为逻辑才能有效运作。 综上所述,无论是在实体世界里作为机器手臂存在还是抽象意义上代表某种形式的数据处理器件,manipulator 都扮演着不可或缺的角色。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值