-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Need to access device's friendly name #11
Comments
It's probably best to call `libusbp_device_get_os_id` and use that to
retrieve the friendly name from SetupAPI. Does that work well enough?
…On Wed, Dec 7, 2022, 7:47 AM jporcher ***@***.***> wrote:
Under Windows, I need to access device's friendly name (
SetupDiGetDeviceRegistryProperty with property SPDRP_FRIENDLYNAME).
This information is not part of libusbp::device. May it be added to the
API? It's probably only available under Windows, I did not check. Would
that be an acceptable pull request?
Else, can one retrieve the internal device handle from libusbp::device
and later call SetupDiGetDeviceRegistryProperty?
—
Reply to this email directly, view it on GitHub
<#11>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADR6THLJINU7OXUASZUW5DWMCPONANCNFSM6AAAAAASW45UPY>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Sure, this can work. However, it would force to enumerate devices again as the API needs handles (OS IS as string won't help). |
Actually, not sure it will work. get_os_id returns me "USB\VID_0403&PID_6001\AR0JFBPE" while SetupDiGetDeviceRegistryProperty with SPDRP_HARDWAREID returns "FTDIBUS\COMPORT&VID_0403&PID_6001". So it's hard to safely determine if that's the same device or not (while it is in my case) |
The "OS ID" on Windows is a Device Instance ID, not a hardware ID. (It
couldn't be a hardware ID because those are not unique when you plug two
identical devices in.). You can use `SetupDiGetDeviceInstanceIdA`.
…On Wed, Dec 7, 2022, 8:28 AM jporcher ***@***.***> wrote:
Actually, not sure it will work. get_os_id returns me
"USB\VID_0403&PID_6001\AR0JFBPE" while SetupDiGetDeviceRegistryProperty
with SPDRP_HARDWAREID returns "FTDIBUS\COMPORT&VID_0403&PID_6001". So it's
hard to safely determine if that's the same device or not (while it is in
my case)
—
Reply to this email directly, view it on GitHub
<#11 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADR6TGM6UDFZLNBEL65VEDWMCULRANCNFSM6AAAAAASW45UPY>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Hi again, get_os_id() is "USB\VID_0403&PID_6001\AR0JFBPE" SetupDiGetDeviceInstanceId gives "FTDIBUS\VID_0403+PID_6001+AR0JFBPEA\0000" So none fits. But this is maybe due to issue #10, looks like libusbp is pointing to "USB serial controller" while WindowsAPI is pointing to "USB serial port (COM8)". Then it's not surprising the names do not match. |
Just tested with a non FTDI device, using SetupDiGetDeviceInstanceId works fine to identify the device while enumerating using SetupAPI. |
A libusbp::device represents an actual physical device plugged into a USB port, not an interface/service provided by the device, so it is correct that the only libusbp::device there is "USB serial controller" (and the other nodes that are direct children of a USB hub). |
Under Windows, I need to access device's friendly name (
SetupDiGetDeviceRegistryProperty
with propertySPDRP_FRIENDLYNAME
).This information is not part of
libusbp::device
. May it be added to the API? It's probably only available under Windows, I did not check. Would that be an acceptable pull request?Else, can one retrieve the internal device handle from
libusbp::device
and later callSetupDiGetDeviceRegistryProperty
?The text was updated successfully, but these errors were encountered: