掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
指定したデバイスの接続/切断時の処理をするには? (ID:73411)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いつもお世話になります。 早速ですが、、、、、 USB-RS232C変換をにてシリアル通信を実現したいと考えています。 その際に、不用意にUSBが外れた時に切断処理をしたいと思い、 【WM_DEVICECHANGE】メッセージでUSBデバイスの状態変化で判別したいと思うのですが、、、、 その際、そのデバイスだけを検出して処理がしたいと思っています。 いろいろと調べた感じでは、RegisterDeviceNotification これで設定することで出来るような感じで書かれていたのですが、、、、、 //GUID指定 //{A5DCBF10-6530-11D2-901F-00C04FB951ED} DEFINE_GUID(GUID_TEST3, 0xA5DCBF10, 0x6530, 0x11d2, 0x90, 0x1F, 0x00, 0xc0, 0x4F, 0xb9, 0x51, 0xed); #define GUID_DRIVER GUID_TEST3 //認識するデバイス情報の登録 DEV_BROADCAST_DEVICEINTERFACE devif; ZeroMemory( &devif, sizeof(DEV_BROADCAST_DEVICEINTERFACE) ); devif.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE); devif.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE; devif.dbcc_classguid = GUID_DRIVER; hDevNotify = RegisterDeviceNotification( hWnd, &devif, DEVICE_NOTIFY_WINDOW_HANDLE ); そもそもGUIDはどう調べればよいのでしょうか? infに書かれているClassGUIDではHitせず、どのGUIDを指定すればよいのかわかりませんでした。 試しに devif.dbcc_classguid = GUID_CLASS_USB_DEVICE; にすると、抜き差しで反応はするのですが、wParamの情報がすべて {A5DCBF10-6530-11D2-901F-00C04FB951ED} になってしまいます。(dbcc_nameは正しいものが格納されている) PID/VIDは変更する可能性がありますので、出来ればデバイスのGUIDで判断できたら良いのですが、、、、、 良い方法はないでしょうか??? 申し訳ありませんが、ご教授宜しくお願いします。 P.S. PID/VIDは変更する可能性があるというのは、市販ケーブルではなく、 自社製の評価ボードへの組み込みでUSB-シリアル変換をしているため。 Driverは共通のものを使うが、評価ボード毎にPIDを変える可能性が あるためです。。。。 わかりにくくて申し訳ないです。。。。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.