none
UMDF Installation failed with "The Parameter is incorrect" RRS feed

  • Question

  • Environment:

    Windows Server 2012 (x64)

    Driver is based on UMDF Sample driver ( osrusbfx2um )

    Windows OS was started having "Driver Signature Verification" disabled

    The Problem:

    I am trying to manually install the driver using the device manager ( 'Update Driver Software' menu item ), after confirming installation of an unsigned driver I get the "Parameter is incorrect" installation error.

    The driver INF integrity was verified using chkinf.bat @ the WDK

    What might I be doing wrong here?

    Following is The INF used:

    [Version]
    Signature="$Windows NT$"
    Class=Sample
    ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171}
    Provider=%MSFTUMDF%
    DriverVer=08/20/2014,10.22.26.687
    CatalogFile=wudf.cat

    [Manufacturer]
    %MSFTUMDF%=Volicon,NTamd64

    [Volicon.NTamd64]
    ;%VoliconUsbDeviceName%=VoliconUsb_Install, USB\VID_05AC&PID_12AA&REV_0510
    %VoliconUsbDeviceName%=VoliconUsb_Install, USB\VID_05AC&PID_12AA
    ;%VoliconUsbDeviceName%=VoliconUsb_Install, USB\VID_05AC&PID_12A9&REV_0240
    ;%VoliconUsbDeviceName%=VoliconUsb_Install, USB\VID_05AC&PID_12A9


    [ClassInstall32]
    AddReg=SampleClass_RegistryAdd

    [SampleClass_RegistryAdd]
    HKR,,,,%ClassName%
    HKR,,Icon,,"-10"

    [SourceDisksFiles]
    osrusbfx2um.dll=1

    [SourceDisksNames]
    1 = %MediaDescription%

    ; =================== UMDF VoliconUsb Device ==================================

    [VoliconUsb_Install.NT]
    CopyFiles=UMDriverCopy
    Include=WINUSB.INF                      ; Import sections from WINUSB.INF
    Needs=WINUSB.NT                         ; Run the CopyFiles & AddReg directives for WinUsb.INF

    [VoliconUsb_Install.NT.hw]
    AddReg=VoliconUsb_Device_AddReg

    [VoliconUsb_Install.NT.Services]
    AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall  ; flag 0x2 sets this as the service for the device
    AddService=WinUsb,0x000001f8,WinUsb_ServiceInstall  ; this service is installed because its a filter.

    [VoliconUsb_Install.NT.CoInstallers]
    AddReg=CoInstallers_AddReg

    [CoInstallers_AddReg]
    HKR,,CoInstallers32,0x00010000,"WUDFCoinstaller.dll"

    [VoliconUsb_Install.NT.Wdf]
    UmdfDispatcher=WinUsb
    UmdfService=WUDFVoliconUsb, WUDFVoliconUsb_Install
    UmdfServiceOrder=WUDFVoliconUsb

    [WUDFVoliconUsb_Install]
    UmdfLibraryVersion=2.0.0
    ServiceBinary=%12%\UMDF\osrusbfx2um.dll

    [VoliconUsb_Device_AddReg]
    HKR,,"LowerFilters",0x00010008,"WinUsb" ; FLG_ADDREG_TYPE_MULTI_SZ | FLG_ADDREG_APPEND
    HKR,,"WinUsbPowerPolicyOwnershipDisabled",0x00010001,1  ; our driver takes ownership of power policy.  Tell WINUSB not to

    [WUDFRD_ServiceInstall]
    DisplayName     = %WudfRdDisplayName%
    ServiceType     = 1
    StartType       = 3
    ErrorControl    = 1
    ServiceBinary   = %12%\WUDFRd.sys
    LoadOrderGroup = Base

    [WinUsb_ServiceInstall]
    DisplayName     = %WinUsb_SvcDesc%
    ServiceType     = 1
    StartType       = 3
    ErrorControl    = 1
    ServiceBinary   = %12%\WinUSB.sys

    [DestinationDirs]
    UMDriverCopy=12,UMDF ; copy to driversMdf
    CoInstallers_CopyFiles=11

    [UMDriverCopy]
    osrusbfx2um.dll

    ; =================== Generic ==================================

    [Strings]
    MSFTUMDF="Volicon Internal (WDF:UMDF)"
    MediaDescription="Volicon Cap Driver Installation Media"
    ClassName="Cap"
    WudfRdDisplayName="Windows Driver Foundation - User-mode Driver Framework Reflector"
    VoliconUsbDeviceName="Volicon Cap UMDF Driver" 
    WinUsb_SvcDesc="WinUSB Driver"

    • Edited by Nadav Rub Wednesday, August 20, 2014 8:06 AM
    Wednesday, August 20, 2014 8:03 AM

Answers

  • if you sign the driver with a class 3 cert purchased from a well known cert vendor and that cert is installed in the root store you will no longer have to disable signing.

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Monday, August 25, 2014 4:41 PM

All replies

  • what does setupapi.dev.log say?

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Wednesday, August 20, 2014 2:08 PM
  • This seem to be a problem with the driver signature/certificate, This is a driver in development and the computer where it is installed is not provisioned ( I want to use the same machine for development and UMDF debugging ).

    The properties of the .cat file Indicate: "The security catalog is not valid. The certificate that signed this security catalog is not valid."

    Starting the OS having Driver Signature Verification disabled resolved the problem, however, I would like to avoid starting the OS with that option set, is there any way of generating a pseudo certificate to work this through ?

         sto:                {DRIVERSTORE IMPORT VALIDATE} 16:55:46.395

         sig:                     {_VERIFY_FILE_SIGNATURE} 16:55:46.399
         sig:                          Key      = usbumdfcap.inf
         sig:                          FilePath = C:\Windows\System32\DriverStore\Temp\{1444f34a-9d85-7f43-b6aa-b21488c11f32}\usbumdfcap.inf
         sig:                          Catalog  = C:\Windows\System32\DriverStore\Temp\{1444f34a-9d85-7f43-b6aa-b21488c11f32}\UsbUmdfCap.cat
    !    sig:                          Verifying file against specific (valid) catalog failed! (0x800b0109)
    !    sig:                          Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
         sig:                     {_VERIFY_FILE_SIGNATURE exit(0x800b0109)} 16:55:46.408
         sig:                     {_VERIFY_FILE_SIGNATURE} 16:55:46.408
         sig:                          Key      = usbumdfcap.inf
         sig:                          FilePath = C:\Windows\System32\DriverStore\Temp\{1444f34a-9d85-7f43-b6aa-b21488c11f32}\usbumdfcap.inf
         sig:                          Catalog  = C:\Windows\System32\DriverStore\Temp\{1444f34a-9d85-7f43-b6aa-b21488c11f32}\UsbUmdfCap.cat
    !    sig:                          Verifying file against specific Authenticode(tm) catalog failed! (0x800b0109)
    !    sig:                          Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
         sig:                     {_VERIFY_FILE_SIGNATURE exit(0x800b0109)} 16:55:46.410
    !!!  sig:                     Driver package catalog file certificate does not belong to Trusted Root Certificates, and Code Integrity is enforced.
    !!!  sig:                     Driver package failed signature validation. Error = 0xE0000247


    Nadav Rubinstein, See my Blog @ http://www.sophin.com







    • Edited by Nadav Rub Monday, August 25, 2014 2:36 PM
    Monday, August 25, 2014 1:59 PM
  • if you sign the driver with a class 3 cert purchased from a well known cert vendor and that cert is installed in the root store you will no longer have to disable signing.

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Monday, August 25, 2014 4:41 PM