12

狙い

Delphi アプリを使用して、特定の USB ドングル ANT、HID デバイスのハードウェア リセットを実行します。


1. 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, 0);

この機能を使用しているときに取り出し後にデバイスが自動的に起動しない場合、デバイスが確実に起動するようにする方法はありますか?


2. SetupDiRestartDevices 関数の試行

別の方法として、この機能を使用しようとしましたがSetupDiRestartDevices、これはデバイスを適切にリセットしますが、すべての HID デバイス (マウス、キーボードなど) をリセットすることを除いて、この機能を使用するには管理者権限が必要です。

rslt1 := SetupDiRestartDevices(hDevInfo, DeviceInfoData);

この機能で自分のデバイスだけをリセットするにはどうすればよいですか?


質問

特定の USB HID デバイスのハードウェア リセットを実行する一般的な推奨方法はありますか? または、上記の問題を解決する方法はありますか?

4

1 に答える 1

1

ハードリセットは、自分でできることではありません...一部のデバイスにハードリセットを行うには、その特定のデバイスがハードリセットをサポートする必要があります...ハードリセットの方法はデバイスごとに異なります。一部のデバイスには、ハード リセットを実行するためのボタンがあります。コードが必要なものもあります。会社のほとんどは、特定のデバイス用の一連の AT コマンド リストをリリースしています。

たとえば.. 特定のデバイス用に製造元によってリリースされた at コマンドのリストを次に示します。

これは、この場合に役立ちます...そうでない場合は、グーグルを続けてください。

于 2016-10-16T13:06:21.503 に答える