4

まず、USB デバイスに接続するサードパーティ ソフトウェアを使用しています。この USB デバイスを取り外して再接続すると、ソフトウェアはデバイスと通信できず、プログラムを再起動するまで動作を停止します。つまり、起動時にのみ USB デバイスを検出します。

Windows はデバイスを認識できますが、同じ USB ポートに再接続された場合でも、再接続されるたびに完全な検出/ドライバー インストール手順を実行します。

ここでの問題は、デバイスが取り外された後、適切な USB デバイスをポーリングするようにサード パーティ ソフトウェアを変更する方法がないことです。

そのため、USB の状態/レジスタを保存し、再接続時に Windows が USB ポートを再列挙するのを防ぎ、保存された状態/レジスタを復元するための C++ プログラムを作成する方法についての知識があるかどうかを尋ねたいと思います。 . もしそうなら、私たちはこの努力のいくつかのガイダンスをいただければ幸いです。当然のことながら、この問題を解決するための他のアプローチも受け入れています。

4

1 に答える 1

3

これをアプリケーション レベルで行うことはできません。USB はドライバーによって管理されます。さらに、USB デバイスの詳細は特定のドライバーによって管理されますが、基本 (列挙など) は Windows 標準の USB ドライバーによって処理されます。これは論理的です。Windows は、最初にデバイスを列挙してベンダー ID とプロダクト ID を特定する必要があります。これにより、読み込む特定のドライバーが特定されます。

再挿入のたびに完全に再インストールするということは、デバイスが USB 仕様に違反していること、またはドライバーが Windows API に違反していることを示唆しています。私の最初の推測は、デバイスに適切なシリアル番号がないことです。

于 2012-06-08T07:21:26.540 に答える