作者Leeng (老千)
看板C_and_CPP
標題[問題] Registry的SerialComm機碼
時間Wed Dec 12 10:10:55 2012
我做的事情是這樣:
1.開啟已知存在的COM port => CreateFile()
2.另外開一個thread 持續去poll該COM port是否被拔除
3.若發現已被拔除,才呼叫CloseHandle()
目前對於2的作法是:
(1) 查找HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM
發現即使裝置已被拔除,該清單仍未更新 => 顯然被CreateFile鎖住了
(2) QueryDosDevice()
同(1),只要CreateFile()的handle還開著,就不會更新
但是該裝置在裝置管理員中的圖示明明已經消失了
顯然有其他方式查詢
懇請賜教,謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.192.2
推 govert:不用那麼麻煩, 用GetCommState去polling就可以了. 12/12 12:04
→ govert:COM被拔掉的話, GetCommState會失敗. 12/12 12:04
→ Leeng:太感謝了!! 12/12 14:01