Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 16.02.2016
Сообщений: 101

WM_DEVICECHANGE

07.09.2017, 02:45. Показов 1562. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, при подключении или отключении usb устройства сообщение "WM_DEVICECHANGE" приходить несколько раз:
Remove -
SWD#MMDEVAPI#{0.0.0.00000000}.{6454a4a0-028c-4855-8320-3cb5371cb9a6}#{e6327cad-dcec-4949-ae8a-991e976a79d2}
---------------------------------------
07.09.2017 02:36:47
Remove -
SWD#MMDEVAPI#{0.0.1.00000000}.{7b6527ab-de58-40e0-ac49-8c9a2eecbab1}#{2eef81be-33fa-4800-9670-1cd474972c3f}
---------------------------------------
07.09.2017 02:36:47
Remove -
USB#VID_0D8C&PID_0012&MI_00#6&25825c5e&0 &0000#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\GLOBAL
---------------------------------------
07.09.2017 02:36:47
Remove -
USB#VID_0D8C&PID_0012&MI_00#6&25825c5e&0 &0000#{65e8773e-8f56-11d0-a3b9-00a0c9223196}\GLOBAL
---------------------------------------
07.09.2017 02:36:47
Remove -
USB#VID_0D8C&PID_0012&MI_00#6&25825c5e&0 &0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\GLOBAL
---------------------------------------
07.09.2017 02:36:47
Remove -
HID#VID_0D8C&PID_0012&MI_03#7&2eed3598&0 &0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
---------------------------------------
07.09.2017 02:36:47
Remove -
USB#VID_0D8C&PID_0012#5&1a3449c0&0&11#{a 5dcbf10-6530-11d2-901f-00c04fb951ed}
---------------------------------------
07.09.2017 02:36:47
Add -
USB#VID_0D8C&PID_0012#5&1a3449c0&0&11#{a 5dcbf10-6530-11d2-901f-00c04fb951ed}
---------------------------------------
07.09.2017 02:36:50
Add -
USB#VID_0D8C&PID_0012&MI_00#6&25825c5e&0 &0000#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\GLOBAL
---------------------------------------
07.09.2017 02:36:50
Add -
USB#VID_0D8C&PID_0012&MI_00#6&25825c5e&0 &0000#{65e8773e-8f56-11d0-a3b9-00a0c9223196}\GLOBAL
---------------------------------------
07.09.2017 02:36:50
Add -
USB#VID_0D8C&PID_0012&MI_00#6&25825c5e&0 &0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\GLOBAL
---------------------------------------
07.09.2017 02:36:50
Add -
HID#VID_0D8C&PID_0012&MI_03#7&2eed3598&0 &0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
---------------------------------------
07.09.2017 02:36:50
Add -
SWD#MMDEVAPI#{0.0.0.00000000}.{6454a4a0-028c-4855-8320-3cb5371cb9a6}#{e6327cad-dcec-4949-ae8a-991e976a79d2}
---------------------------------------
07.09.2017 02:36:50
Add -
SWD#MMDEVAPI#{0.0.1.00000000}.{7b6527ab-de58-40e0-ac49-8c9a2eecbab1}#{2eef81be-33fa-4800-9670-1cd474972c3f}
---------------------------------------
07.09.2017 02:36:50

То есть подключил и отключил устройство. Можно заметить что сообщения приходят не совсем одинаковые, я так понял PDEV_BROADCAST_DEVICEINTERFACE структура из которой мы извлекаем pbd->dbcc_name не хватает размера что бы получить полное имя устройства и система присылает повторно сообщение с дополненным именем. Верна ли моя логика?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.09.2017, 02:45
Ответы с готовыми решениями:

WinAPI C++ WM_DEVICECHANGE
Вообщем цель определить любое воткнутое USB устройство. Выбрал WIN API поскольку жрет мало ресурсов, выбрал С++ потому что он не тащит за...

Грабли с WM_DEVICECHANGE
Потратил кучу времени на изучение структур связанных с WM_DEVICECHANGE. Все работает как надо wParam == DBT_DEVICEARRIVAL , отлавливает...

Перехват wm_devicechange
Здравствуйте написал простенькую программку по отлову сообщений вставки usb носителей. Собственно данный код отлавливает события.Приходит и...

2
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
07.09.2017, 08:49
Устройство может иметь (и обычно имеет) несколько device interface.
При отключении для каждого интерфейса приходит свое сообщение WM_DEVICECHANGE.
Поэтому их обычно несколько. Это во-первых. А во-вторых, еще должны приходить
сообщения query device remove, remove pending, device removed. Это во-вторых.
Вот и выходит суммарно несколько WM_DEVICECHANGE...
0
0 / 0 / 0
Регистрация: 16.02.2016
Сообщений: 101
12.09.2017, 04:46  [ТС]
А можно-ли как -нибудь получать сообщение с информацией исключительно только об устройстве? Мне как бы только guid и vid/pid нужен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.09.2017, 04:46
Помогаю со студенческими работами здесь

Как обработать WM_DEVICECHANGE?
Нужна помощь, как заделать хук на событие - вставка изъятие USB-устройства???? Алгоритм такой воткнул/вынул флешку и получил месэдж от...

Не могу разобраться с WM_DEVICECHANGE
Здравствуйте! Необходимо перертсовать дерево со списком дисков в системе, когда в(из) USB разъем(а) вставляется (вынимается) флешка или...

WM_DEVICECHANGE RegisterDeviceNotification PDEV_BROADCAST_HDR
При приведении происходит исключение System.OverflowException что-то там переполнение из-за чего так? case DBT_DEVICEARRIVAL: { ...

RegisterDeviceNotification / WM_DEVICECHANGE / VID _ PID
Не могу подписаться на WM_DEVICECHANGE какие-то неизвестные ошибки не пойму что не так virtual void WndProc(Message% m) override ...

Обработка события подключения и отключения USB(WM_DEVICECHANGE)
Всем привет . Такая задача, требуется отследить подключение и отключение USB. Следующий код работает но выдает одно и тоже в события...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru