Informationen zu einem USB Gerät nach "OnDeviceChange"/"DBT_DEVICEARRIVAL" abfragen

  • VB.NET
  • .NET (FX) 4.5–4.8

    Informationen zu einem USB Gerät nach "OnDeviceChange"/"DBT_DEVICEARRIVAL" abfragen

    Hi,

    ich lasse mir mitteilen, ob ein für mich relevantes Gerät an den PC angesteckt wird über

    VB.NET-Quellcode

    1. Private Sub OnDeviceChange(ByVal msg As Message)
    2. Dim wParam As Integer
    3. wParam = msg.WParam.ToInt32()
    4. If wParam = Win32.DBT_DEVICEARRIVAL Then
    5. Dim o As New Win32.DEV_BROADCAST_HDR
    6. Dim b As New Win32.DEV_BROADCAST_DEVICEINTERFACE1
    7. Dim gd As Guid
    8. Marshal.PtrToStructure(msg.LParam, o)
    9. If (o.dbcc_devicetype = Win32.DBT_DEVTYP_DEVICEINTERFACE) Then
    10. Dim strsize As Integer = (o.dbcc_size - 28) \ 2
    11. ReDim b.dbcc_name(strsize)
    12. Marshal.PtrToStructure(msg.LParam, b)
    13. Dim str As New String(b.dbcc_name, 0, strsize)
    14. Dim str2 As GUID = New Guid(b.dbcc_classguid)
    15. Debug.Print("Name = " & str)
    16. Debug.Print("GUID = " & str2.ToString)
    17. RaiseEvent DeviceConnect()
    18. End If
    19. ElseIf wParam = Win32.DBT_DEVICEREMOVECOMPLETE Then
    20. RaiseEvent DeviceDisconnect()
    21. End If
    22. End Sub


    Ich benötige jetzt zu diesem Gerät aber noch weitere Infos, wie
    sie im Gerätemanger unter "Eigenschaften"->"Details" zu bekommen sind.

    Genauer: Ich benötige Informationen um den Anschluss möglichst genau rauszubekommen.
    Je genauer umso besser (genauer USB-Port) - ich vermute aber, dass die Eindeutigkeit
    nur bis zum bedienenden USB-Hub gewährleistet ist, was dann auch reichen würde.

    Kann mir jemand einen Weg aufzeigen, wie ich da rankomme ?