Forum: PC-Programmierung WinUSB_Installationproblem


von Bryan (Gast)


Angehängte Dateien:

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!

von Christian R. (supachris)


Lesenswert?

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

von Bryan (Gast)


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!

von Bryan (Gast)


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)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.