Можно ли из содержимого сообщения WM_DEVICECHANGE определить, какому устройству оно соответствует? - PullRequest
0 голосов
/ 15 июня 2011

Мое приложение должно определить, когда определенное USB-устройство вставлено / удалено. Это устройство предоставляет несколько интерфейсов (последовательный порт, сетевой адаптер и др.). Я могу поймать сообщение WM_DEVICECHANGE, но я не вижу никаких данных в самом сообщении, которые бы однозначно идентифицировали мое устройство (в отличие от того, кто-то вставлял / удалял адаптер usb-to-serial). Я что-то упустил?

Я знаю, что могу выполнять запрос WMI всякий раз, когда получаю событие, чтобы проверить, есть ли мое устройство или нет, но я надеялся, что было более простое / более элегантное решение.

Я попытался выполнить WMI-запрос «событие» (вместо перехвата WM_DEVICECHANGE), но, очевидно, мое устройство не поддерживает события WMI.

1 Ответ

1 голос
/ 15 июня 2011

Вам необходимо проверить DBT_DEVICEARRIVAL в wParam для WM_DEVICECHANGE.В этот момент lParam будет указывать на DEV_BROADCAST_HDR структуру, которая содержит больше информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...