This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Code10 after installing own driver on x64 win 7 prof

Hello everyone,

I tried to install an driver via INF-file for USB-CDC (based on mcb2300_vcom.inf) on Windows 7 Professional x64 (in the following text called 'target system'). This is to get a COM-Port to send data via USB to an LPC2368 microcontroller.

The installation failed the first time with the message that the driver is not a x64-based system driver.

So I changed the driver as described in MSDN-article for "Cross-Platform INF Files". After a day of hard mind-work I finished the driver and tried to install it again. Now the installation starts on the target system, gives a message about the missing signature, and finishes with following message:

Driver software was found, but an error occured while installation.
The device could not be started. (Code 10)

I checked the INF-file with ChkInf (WDK 7.1.0) on the target system and got only one error (no warnings):

Line x: ERROR: (E22.1.1081) Directive: CatalogFile required (and must not be blank) in section [Version] for WHQL digital signature.

I do not think this error is the reason for Code10.

I furthermore checked the usbser.sys on the target system. It's version is 6.1.7600.16385.
It's date is 14.07.2009 02:06.

I do not know what to do now to make the driver work.

Finally, here is my revised INF source:

[Version]
Signature="$Windows NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%MYCOMPANY%
DriverVer=10/13/2010,5

[DestinationDirs]
FakeModemCopyFileSection=12
DefaultDestDir=12

[Manufacturer]
%MYCOMPANY%=USBDevice,NTia64,NTamd64

;------------------------------------------------------------------------------
; Models sections
;------------------------------------------------------------------------------

[USBDevice]
%DRIVERNAME%=InstallXXUSB, USB\VID_c251&PID_1705

[USBDevice.NTia64]
%DRIVERNAME%=InstallXXUSB, USB\VID_c251&PID_1705

[USBDevice.NTamd64]
%DRIVERNAME%=InstallXXUSB, USB\VID_c251&PID_1705

[SourceDisksFiles]

[SourceDisksNames]

;------------------------------------------------------------------------------
; Installation
;------------------------------------------------------------------------------

[InstallXXUSB]
include=mdmcpq.inf
CopyFiles=FakeModemCopyFileSection
AddReg=XXUSB.AddReg

[XXUSB.AddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[InstallXXUSB.Services]
AddService=usbser, 0x00000002, DriverService

[DriverService]
DisplayName=%DRIVERNAME%
Description=%DESCRIPTION%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys


;------------------------------------------------------------------------------
;  String Definitions
;------------------------------------------------------------------------------

[Strings]
MYCOMPANY="The name of my company"
DRIVERNAME="XX USB VCom Port"
DESCRIPTION="Provides a virtual COM-Port when connecting an XX via USB"

Has anyone hints for me to solve the problem and make the port work?

Best regards

Parents
  • Good morning to everyone,

    I have analyzed the requests captured by SourceUSB now. I found out that the host sends a
    SELECT_CONFIGURATION request and then the INVALID_PARAMETER status occurs on the request
    completion. After that, a previous started START_DEVICE request also shows
    INVALID_PARAMETER status on request completion, followed by some successful REMOVE_DEVICE PNP
    requests at the end of the captured data.

    Now I have to find out, why the SELECT_CONFIGURATION ends with INVALID_PARAMETER...

    Here is an excerpt of the captured requests:

    TYPE                            #       Request                         I/O     TIME            DO                              Cfg:Ifc:Epa     ISO Err/ZLP     CBW     CSW     Irp Request             Irp Status
    =========================================================================================================================================================================================================================
    ...
    URB  (blue field)               20      SELECT_CONFIGURATION            --      12.23830986     noname(0xfffffa8003f6e820)      ---             ---             ---     ---     0xfffffa8003f02500      ---
    URB  (blue field)               21      SELECT_CONFIGURATION            --      12.23831272     'USBPDO-7'                      ---             ---             ---     ---     0xfffffa8003f02500      ---
    URB  (light blue field)         22      SELECT_CONFIGURATION            --      12.29962444     'USBPDO-7'                      ---             ---             ---     ---     0xfffffa8003f02500      INVALID_PARAMETER
    URB  (light blue field)         23      SELECT_CONFIGURATION            --      12.29962540     noname(0xfffffa8003f6e820)      ---             ---             ---     ---     0xfffffa8003f02500      INVALID_PARAMETER
    URB* (light blue field)         24      SELECT_CONFIGURATION            --      12.29963017     'USBPDO-7'                      ---             ---             ---     ---     0xfffffa8003f02500      INVALID_PARAMETER
    URB* (light blue field)         25      SELECT_CONFIGURATION            --      12.29963112     noname(0xfffffa8003f6e820)      ---             ---             ---     ---     0xfffffa8003f02500      INVALID_PARAMETER
    PNP  (light green field)        26      START_DEVICE                    --      12.29964542     'USBSER000'                     ---             ---             ---     ---     0xfffffa80040596b0      INVALID_PARAMETER
    PNP* (light green field)        27      START_DEVICE                    --      12.29968071     'USBSER000'                     ---             ---             ---     ---     0xfffffa80040596b0      INVALID_PARAMETER
    ...
    

    Does anyone have an idea for the reasons why the INVALID_PARAMETER status occurs?

    Best regards

Reply
  • Good morning to everyone,

    I have analyzed the requests captured by SourceUSB now. I found out that the host sends a
    SELECT_CONFIGURATION request and then the INVALID_PARAMETER status occurs on the request
    completion. After that, a previous started START_DEVICE request also shows
    INVALID_PARAMETER status on request completion, followed by some successful REMOVE_DEVICE PNP
    requests at the end of the captured data.

    Now I have to find out, why the SELECT_CONFIGURATION ends with INVALID_PARAMETER...

    Here is an excerpt of the captured requests:

    TYPE                            #       Request                         I/O     TIME            DO                              Cfg:Ifc:Epa     ISO Err/ZLP     CBW     CSW     Irp Request             Irp Status
    =========================================================================================================================================================================================================================
    ...
    URB  (blue field)               20      SELECT_CONFIGURATION            --      12.23830986     noname(0xfffffa8003f6e820)      ---             ---             ---     ---     0xfffffa8003f02500      ---
    URB  (blue field)               21      SELECT_CONFIGURATION            --      12.23831272     'USBPDO-7'                      ---             ---             ---     ---     0xfffffa8003f02500      ---
    URB  (light blue field)         22      SELECT_CONFIGURATION            --      12.29962444     'USBPDO-7'                      ---             ---             ---     ---     0xfffffa8003f02500      INVALID_PARAMETER
    URB  (light blue field)         23      SELECT_CONFIGURATION            --      12.29962540     noname(0xfffffa8003f6e820)      ---             ---             ---     ---     0xfffffa8003f02500      INVALID_PARAMETER
    URB* (light blue field)         24      SELECT_CONFIGURATION            --      12.29963017     'USBPDO-7'                      ---             ---             ---     ---     0xfffffa8003f02500      INVALID_PARAMETER
    URB* (light blue field)         25      SELECT_CONFIGURATION            --      12.29963112     noname(0xfffffa8003f6e820)      ---             ---             ---     ---     0xfffffa8003f02500      INVALID_PARAMETER
    PNP  (light green field)        26      START_DEVICE                    --      12.29964542     'USBSER000'                     ---             ---             ---     ---     0xfffffa80040596b0      INVALID_PARAMETER
    PNP* (light green field)        27      START_DEVICE                    --      12.29968071     'USBSER000'                     ---             ---             ---     ---     0xfffffa80040596b0      INVALID_PARAMETER
    ...
    

    Does anyone have an idea for the reasons why the INVALID_PARAMETER status occurs?

    Best regards

Children
No data