- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:USBデバイスの識別について)
USBデバイスの識別と再接続について
このQ&Aのポイント
- USBデバイスが再接続された際、デバイスドライバが検知して接続状態になるが、アプリケーションからは使用できないため、ドライバをクローズしてオープンし直す必要があるのかについて確認したい。
- USBデバイスの識別と再接続に関して正しい概念かどうかについて教えてほしい。
- USBデバイスの識別に使われる番号(識別番号)について正しい用語を教えてほしい。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
推測です。 USBを使用する概要は以下の通りだと思います。 1.デバイスドライバが認識。使えるようになる 2.プログラムはOSが認識したデバイスをオープンする (ハンドルと呼ばれるもの) 3.プログラムはハンドルを扱い、何か操作するときはハンドルを指定する。OSは指定されたハンドルから操作するデバイスを特定し、デバイスに対して操作する これは USBに限らず、Comポートなども同様だと思います。 で、問題なのは、USBデバイスを外して、再び付けてもクローズすることなく操作したい、ということですが、デバイスとハンドルの対応関係がいったん破棄される以上無理だと思います。 (そのハンドルを使用すると、「ハンドルが無効です」みたいなエラーが起きるはずです) なので取り外しが起こりそうな場合には、再試行(クローズしてオープンする)処理をいれるか、デバイスが取り外されたとき、取り付けられたときにクローズ・オープン処理を入れるようにするしかないと思います。 OS側の対応関係が破棄されなければいい、というのは、OS自体を書き換えなければいけないレベルですので検討しないほうがいいと思います。
補足
ご回答ありがとうございます。 デバイスの認識についてはイメージがつかめました。 補足でお伺いしたいのですが、 3.「ハンドル」という用語はWindowsで聞いたことが ありますが、他のOSでも使う用語でしょうか? 4.ドライバ(もしくはOS)がデバイスを識別するときの ハンドルにあたるものに、一般的な名前が あればご教示下さい。