Всем доброго времени суток!
Ситуация следующая:
Имеется устройство USB-Serial, пишем под него программу
Когда прога получает сообщение WM_DEVICECHANGE (приходит только с wParam=DBT_DEVNODES_CHANGED), сразу проверяет реестр (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbser - список подключенных usb-serial устройств и HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<****> - описание устройства)
Если устройство пропадает из реестра, значит, пора отключаться от виртуального ком-порта
Это срабатывает, кроме случая, когда usb-шнурок выдернуть и сразу воткнуть
Похоже, реестр просто не успевает обновляться, и отключения от ком-порта не происходит (а без переподключения дальше с ним работа не идёт)
Можно ли как-то определить момент отключения нашего устройства, минуя реестр?
Например, подписаться на сообщение WM_DEVICECHANGE с параметром DBT_DEVICEREMOVECOMPLETE?
При этом главное - сразу определить отключение именно НАШЕГО устройства, не проверяя реестры и прочие источники
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)