выход из dbcc_name из DEV_BROADCAST_DEVICEINTERFACE win32 программирования - PullRequest
2 голосов
/ 15 июня 2009

У меня есть код c, который определяет удаление и вставку USB-кабеля.

Я нашел одну структуру DEV_BROADCAST_DEVICEINTERFACE, которая имеет dbcc_name в качестве члена. но я не знаю, какой указатель на тип приведен к этой структуре для доступа dbcc_name.

Как я могу получить имя устройства вставленного устройства.

Ответы [ 2 ]

1 голос
/ 08 июля 2010

Пожалуйста, обратите внимание на CodeSet. Если это Юникод. Данные \\ 0 ......

1 голос
/ 02 июля 2009

Вам нужно разыграть DEV_BROADCAST_HEADER* до DEV_BROADCAST_DEVICEINTERFACE*. Вам разрешено делать это, если и только если dbch_devicetype==DBT_DEVTYP_DEVICEINTERFACE.

Вы получаете DEV_BROADCAST_HEADER* как LPARAM из WM_DEVICECHANGE.

Чтобы сделать что-то полезное с dbcc_name,, вы должны передать это SetupDiOpenDeviceInterface(). Это даст вам SP_DEVICE_INTERFACE_DATA с одним SP_DEVINFO_DATA. Затем вы можете вызвать такие функции, как SetupDiGetDeviceRegistryProperty, чтобы узнать больше об устройстве.

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