bulkusb.sys bzw. inf



  • hallo zusammen,

    ich habe ein kleines USB problem. Ich habe ein Board (Keil MCB2140), das über den Windows bulkusb Treiber installiert wurde.

    Jetzt würde ich gerne den Dateinamen rausfinden für dieses Device, das ich mit CreateFile dann anspreche. Gibt es denn eine Funktion, die mir (wie bei HID) eine Liste von allen angeschlossenen USB Devices zurückgibt?

    grüße nils



  • Habe bei den Win DDK Sachen ein Beispiel gefunden, das sollte machen, was ich brauch. Werde den Code mal analysieren.



  • OK, also den Filenamen hab ich gefunden:

    \\?\usb#vid_045e&pid_930d#application__#{00873fdf-61a8-11d1-aa5e-00c04fb1728b}
    

    kann auch mit CreateFile drauf zugreifen. Nur mein Problem ist, ich kann nicht drauf schreiben 😞 Der writeFile Befehl gibt mir immer "0 Bytes written" zurück.

    Habe das usbView Beispiel von Microsoft installiert und bekomm dort folgende Eigenschaften zurück

    Device Descriptor:
    bcdUSB:             0x0110
    bDeviceClass:         0xFF
    bDeviceSubClass:      0xFF
    bDeviceProtocol:      0x00
    bMaxPacketSize0:      0x40 (64)
    idVendor:           0x045E (Microsoft Corporation)
    idProduct:          0x930D
    bcdDevice:          0x0100
    iManufacturer:        0x04
    iProduct:             0x20
    iSerialNumber:        0x48
    bNumConfigurations:   0x01
    
    ConnectionStatus: DeviceConnected
    Current Config Value: 0x01
    Device Bus Speed:     Full
    Device Address:       0x01
    Open Pipes:              2
    
    Endpoint Descriptor:
    bEndpointAddress:     0x82  IN
    Transfer Type:        Bulk
    wMaxPacketSize:     0x0040 (64)
    bInterval:            0x01
    
    Endpoint Descriptor:
    bEndpointAddress:     0x02  OUT
    Transfer Type:        Bulk
    wMaxPacketSize:     0x0040 (64)
    bInterval:            0x01
    

    die "päckchen", die ich mit writeFile versende sind auch immer schön 64 Byte groß.

    Muss ich bei WriteFile vielleicht statt dem Payload noch irgendwie die Pipe oder Endpoint mit reincodieren? Bis jetzt hab ich ne 0 als Startbyte, da ich vorher mit HID gearbeitet hab und da die 0 geklappt hat.

    Grüße Nils



  • ja du mußt die Pipe noch an den Device Namen für CreateFile mit anhängen.

    DeviceName + "\\" + IntToStr(pipe)
    

    Achso ich hab das selbe Problem bei der HID Klasse. Habe ein Handle auf das Device mit CreateFile bekommen. Leider klappt das mit dem WriteFile nicht der meint immer bei GetLastError 87 (Parameter Error)

    wäre über einen Tip Dankbar

    MfG


Anmelden zum Antworten