При использовании SetupDiGetDeviceInterfaceDetail для извлечения SP_DEVICE_INTERFACE_DETAIL_DATA, относящегося к подключенному USB-устройству, возвращается строка DevicePath.Извлечение USB PID VID из DevicePath
Строка возвращается отформатирован как в следующем примере:
\ \ USB # vid_abcd & pid_1234 # 000000000 # {хххх-хххх-хххх-хххх-XXXXXXXXXXXX}
Вопрос: Является ли форматирование/синтаксис этой строки, документально зафиксированный где-либо и/или известный как надежный во всех версиях Windows XP/Vista/7/8?
Я экспериментирую с кодом для извлечения значений VID и PID из этой строки, чтобы идентифицировать упомянутое устройство и хотел бы знать, является ли это надежным способом получения значений VID и PID.
Я использовал этот формат в течение многих лет. Я не уверен, где это задокументировано, но могу сказать, что он был надежным для меня в производственном коде. Я добавил несколько тегов, чтобы получить более заметную информацию от разработчиков, которые могут знать. – Preston
Какой API вы используете для доступа к вашему USB-устройству, например WinUSB или libusb? У них есть API, которые вы можете использовать для целевых устройств по своим идентификаторам, или получить дескрипторы, чтобы посмотреть на значения, которые возникают из самого устройства. – Preston
Спасибо за ответ. Я использую функции setupapi.dll, такие как SetupDiEnumDeviceInterfaces, чтобы получить путь к USB-устройству. Затем я использую CreateFile, WriteFile, ReadFile и т. Д. Для связи с этим устройством. – user3099783