www.mikrocontroller.net

Forum: PC-Programmierung WinUSB_Installationproblem


Autor: Bryan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mit dem USBN9604 Controller einen USB Interfacebaustein gebaut, 
der sich mittels libusb win32 unter xp wunderbar steuern lässt.

Jetzt habe ich mich auf meinem VISTA Premium 32bit System mit dem WinUSB 
Treibers von Windows versucht. Das Programm unter C++ funktioniert bei 
standard USB-Devices.

Leider kann ich aber nicht den vorgesehenen Treiber mittels der 
folgenden INF Datei installieren. Die Installation klappt zwar aber mein 
USB startet nicht - immer Code 10.

Kann mir jemand helfen?

Vielen Dank!

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dass Vista ein anderes Treibermodell als XP hat, weißt du aber, ja?
Der Treiber muss explizit für Vista gemacht sein.

Autor: Bryan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja weiß ich - leider habe ich von Treiberprogrammierung gar keine Ahnung 
und dachte, dass ich über das WINUSB.dll "Modell" auch mir darum keinen 
Kopf machen muss.

Wenn ich das Ganze richtig verstanden habe, dann müsste ich mit der 
WINUSB einfach (so sieht es wenigsten in den SAMPLES aus) direkten 
Zugriff auf meinen USB-Controller über die PID und VID bekommen. Dies 
geschieht auch - leider bricht mein WINUSB C++ bei der Device 
Informationsabfrage einfach ab. Da diese unter XP keine Probleme macht, 
denke ich aber, dass mein USB-Controller schon das tut was er tun soll.

Mein Problem ist - so denke ich - wie kann ich den WINUSB Treiber über 
die INF Datei richtig installieren, so dass mein USB-Controller auch 
startet.

Wenn mir bei der INF-Programmierung vielleicht jemand helfen könnte wäre 
es super.

Vielen Dank!

Autor: Bryan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir die Anmeldung mit SnoppyUSB angeschaut und folgendes 
entdeckt:

Was könnte das falsch gelaufen sein? Unter XP meldet sich das Device ja 
richtig an!

[1 ms] UsbSnoop - FilterAddDevice(9b3e1748) : DriverObject 84246bb0, pdo 
8404d030
[1 ms] UsbSnoop - FilterDispatchPnp(9b3e145c) : IRP_MJ_PNP 
(IRP_MN_QUERY_LEGACY_BUS_INFORMATION)
[1 ms] UsbSnoop - FdoHookDispatchPnp(9b3e145c) : IRP_MJ_PNP 
(IRP_MN_QUERY_LEGACY_BUS_INFORMATION)
[1 ms] UsbSnoop - FilterDispatchPnp(9b3e145c) : IRP_MJ_PNP 
(IRP_MN_QUERY_RESOURCE_REQUIREMENTS)
[2 ms] UsbSnoop - FdoHookDispatchPnp(9b3e145c) : IRP_MJ_PNP 
(IRP_MN_QUERY_RESOURCE_REQUIREMENTS)
[2 ms] UsbSnoop - FilterDispatchPnp(9b3e145c) : IRP_MJ_PNP 
(IRP_MN_FILTER_RESOURCE_REQUIREMENTS)
[2 ms] UsbSnoop - FdoHookDispatchPnp(9b3e145c) : IRP_MJ_PNP 
(IRP_MN_FILTER_RESOURCE_REQUIREMENTS)
[2 ms] UsbSnoop - FilterDispatchPnp(9b3e145c) : IRP_MJ_PNP 
(IRP_MN_START_DEVICE)
[2 ms] UsbSnoop - FdoHookDispatchPnp(9b3e145c) : IRP_MJ_PNP 
(IRP_MN_START_DEVICE)
[156 ms] UsbSnoop - FilterDispatchPnp(9b3e145c) : IRP_MJ_PNP 
(IRP_MN_QUERY_INTERFACE)
[156 ms] UsbSnoop - FdoHookDispatchPnp(9b3e145c) : IRP_MJ_PNP 
(IRP_MN_QUERY_INTERFACE)
[156 ms] UsbSnoop - FilterDispatchAny(9b3dcfd2) : 
IRP_MJ_INTERNAL_DEVICE_CONTROL
[156 ms] UsbSnoop - FdoHookDispatchInternalIoctl(9b3dd1ea) : 
fdo=8404d030, Irp=84047008, IRQL=0
[156 ms]  >>>  URB 1 going down  >>>
-- URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:
  TransferBufferLength = 00000012
  TransferBuffer       = 84263b58
  TransferBufferMDL    = 00000000
  Index                = 00000000
  DescriptorType       = 00000001 (USB_DEVICE_DESCRIPTOR_TYPE)
  LanguageId           = 00000000
[162 ms] UsbSnoop - MyInternalIOCTLCompletion(9b3dd126) : fido=00000000, 
Irp=84047008, Context=a0dc08a8, IRQL=2
[162 ms]  <<<  URB 1 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 84156d84
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN, 
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000012
  TransferBuffer       = 84263b58
  TransferBufferMDL    = 83fb4128
    00000000: 12 01 10 01 00 00 00 08 00 04 76 98 01 02 01 02
    00000010: 03 01
  UrbLink              = 00000000
  SetupPacket          =
    00000000: 80 06 00 01 00 00 12 00
[162 ms] UsbSnoop - FilterDispatchAny(9b3dcfd2) : 
IRP_MJ_INTERNAL_DEVICE_CONTROL
[162 ms] UsbSnoop - FdoHookDispatchInternalIoctl(9b3dd1ea) : 
fdo=8404d030, Irp=84047008, IRQL=0
[162 ms]  >>>  URB 2 going down  >>>
-- URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:
  TransferBufferLength = 00000009
  TransferBuffer       = 8842f854
  TransferBufferMDL    = 00000000
  Index                = 00000000
  DescriptorType       = 00000002 (USB_CONFIGURATION_DESCRIPTOR_TYPE)
  LanguageId           = 00000000
[167 ms] UsbSnoop - MyInternalIOCTLCompletion(9b3dd126) : fido=00000000, 
Irp=84047008, Context=a0dc08a8, IRQL=2
[167 ms]  <<<  URB 2 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 84156d84
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN, 
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000009
  TransferBuffer       = 8842f854
  TransferBufferMDL    = 83fb4128
    00000000: 09 02 20 00 01 01 04 80 32
  UrbLink              = 00000000
  SetupPacket          =
    00000000: 80 06 00 02 00 00 09 00
[167 ms] UsbSnoop - FilterDispatchAny(9b3dcfd2) : 
IRP_MJ_INTERNAL_DEVICE_CONTROL
[167 ms] UsbSnoop - FdoHookDispatchInternalIoctl(9b3dd1ea) : 
fdo=8404d030, Irp=84047008, IRQL=0
[167 ms]  >>>  URB 3 going down  >>>
-- URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:
  TransferBufferLength = 00000020
  TransferBuffer       = 840622c8
  TransferBufferMDL    = 00000000
  Index                = 00000000
  DescriptorType       = 00000002 (USB_CONFIGURATION_DESCRIPTOR_TYPE)
  LanguageId           = 00000000
[174 ms] UsbSnoop - MyInternalIOCTLCompletion(9b3dd126) : fido=00000000, 
Irp=84047008, Context=a0dc08a8, IRQL=2
[174 ms]  <<<  URB 3 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 84156d84
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN, 
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000020
  TransferBuffer       = 840622c8
  TransferBufferMDL    = a27d5b98
    00000000: 09 02 20 00 01 01 04 80 32 09 04 00 00 02 01 02
    00000010: 00 05 07 05 02 02 40 00 0a 07 05 83 02 40 00 0a
  UrbLink              = 00000000
  SetupPacket          =
    00000000: 80 06 00 02 00 00 20 00
[174 ms] UsbSnoop - FilterDispatchAny(9b3dcfd2) : 
IRP_MJ_INTERNAL_DEVICE_CONTROL
[174 ms] UsbSnoop - FdoHookDispatchInternalIoctl(9b3dd1ea) : 
fdo=8404d030, Irp=84047008, IRQL=0
[174 ms]  >>>  URB 4 going down  >>>
-- URB_FUNCTION_GET_STATUS_FROM_DEVICE:
  TransferBufferLength = 00000002
  TransferBuffer       = 8842f874
  TransferBufferMDL    = 00000000
  *** error - TransferBufferLength should be 1!
  Index                = 00000000
[5170 ms] UsbSnoop - MyInternalIOCTLCompletion(9b3dd126) : 
fido=00000000, Irp=84047008, Context=a0dc08a8, IRQL=2
[5170 ms]  <<<  URB 4 coming back  <<<
-- URB_FUNCTION_CONTROL_TRANSFER:
  PipeHandle           = 84156d84
  TransferFlags        = 0000000b (USBD_TRANSFER_DIRECTION_IN, 
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000000
  TransferBuffer       = 8842f874
  TransferBufferMDL    = a27d5b98
  UrbLink              = 00000000
  SetupPacket          =
    00000000: 80 00 00 00 00 00 02 00
[5173 ms] UsbSnoop - FilterDispatchPnp(9b3e145c) : IRP_MJ_PNP 
(IRP_MN_REMOVE_DEVICE)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.