Delphi 如何执行特定HID设备的硬件重置? 目的

Delphi 如何执行特定HID设备的硬件重置? 目的,delphi,winapi,hid,Delphi,Winapi,Hid,使用Delphi应用程序执行特定USB加密狗ANT、HID设备的硬件重置 1.CM_请求_设备_弹出功能尝试 我曾尝试使用该功能,它会正确弹出我的设备,但在某些系统上不会再次自动启动 这是我用于设备弹出的代码: str := PChar(GetDeviceID(DeviceInfoData.DevInst)); status := CM_Locate_DevNodeA(dev, str, CM_LOCATE_DEVNODE_NORMAL); status := CM_Request_Devic

使用Delphi应用程序执行特定USB加密狗ANT、HID设备的硬件重置


1.CM_请求_设备_弹出功能尝试 我曾尝试使用该功能,它会正确弹出我的设备,但在某些系统上不会再次自动启动

这是我用于设备弹出的代码:

str := PChar(GetDeviceID(DeviceInfoData.DevInst));
status := CM_Locate_DevNodeA(dev, str, CM_LOCATE_DEVNODE_NORMAL);
status := CM_Request_Device_EjectA(dev, nil, '', 0, 0);
使用此功能时,如果弹出后设备未自动启动,是否有办法确保设备启动


2.SetupDiRestartDevices函数尝试 作为替代方案,我尝试使用该功能,该功能可正确重置我的设备,但重置所有HID设备(如鼠标、键盘等)除外,该功能需要管理员权限才能工作:

rslt1 := SetupDiRestartDevices(hDevInfo, DeviceInfoData);
如何使用此功能仅重置设备


问题:
是否有一种通用的、推荐的方法来执行特定USB HID设备的硬件重置?或者有没有办法解决上述任何问题?

硬重置不是你自己能做的事情。。。 要对某些设备执行硬重置,该特定设备必须支持硬重置。。。 硬复位的方式因设备而异。 有些设备上有一个按钮来进行硬复位。有些需要一段代码。该公司的大多数公司都为这些特定设备发布了一组AT命令列表

例如。。 是制造商针对特定设备发布的at命令列表吗

在这种情况下我可以帮你。。。
如果不继续搜索。

您是否尝试过使用
deviceicontrol
IOCTL\u HID\u DEACTIVATE\u DEVICE
IOCTL\u HID\u ACTIVATE\u DEVICE一起使用
。相关的:-