使用Delphi app执行特定USB加密狗ANT,HID设备的硬件重置。
我尝试使用CM_Request_Device_Eject
功能并正确弹出我的设备,但在某些系统上不会再次自动启动它。
这是我用于设备弹出的代码:
str := PChar(GetDeviceID(DeviceInfoData.DevInst));
status := CM_Locate_DevNodeA(dev, str, CM_LOCATE_DEVNODE_NORMAL);
status := CM_Request_Device_EjectA(dev, nil, '', 0, 0);
有没有办法确保我的设备在使用此功能后弹出后不会自动启动时启动?
作为替代方案,我尝试使用SetupDiRestartDevices
功能,这个功能正确地重置我的设备,但除了重置所有HID设备(如鼠标,键盘等),此功能需要管理员的工作权利:
rslt1 := SetupDiRestartDevices(hDevInfo, DeviceInfoData);
如何使用此功能仅重置我的设备?
是否有通用的推荐方法来执行特定USB HID设备的硬件重置?或者有没有办法解决上述任何问题?