目的
使用Delphi应用程序执行特定USB加密狗ANT,HID设备的硬件复位.
CM_Request_Device_Eject函数尝试
我试图使用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);
有没有办法确保我的设备启动,如果在弹出后不自动启动使用此功能?
2. SetupDiRestartDevices功能尝试
作为一种替代方案,我试图使用SetupDiRestartDevices
功能,这一个正确地重置了我的设备,但是除了复位所有的HID设备(如鼠标,键盘等),并且此功能需要管理员权限工作:
rslt1 := SetupDiRestartDevices(hDevInfo,DeviceInfoData);
如何才能使用此功能重设设备?
题
是否有通用的推荐方式来执行特定USB HID设备的硬件复位?还是有办法解决上述任何问题?