UMDF 2 Sensor installation fails in specific windows version

Michael Chourdakis 66 Reputation points
2023-01-24T21:59:52.83+00:00

This is an embedded not updated OS version I have to support.

enter image description here

I have an UMDF 2.0 driver which is otherwise successfully installed. In this particular Windows 10 version I get a message in devmgmt.msc of code 31

This device is not working properly because Windows cannot load the drivers required for this device. (Code 31)

{Operation Failed}
The requested operation was unsuccessful.

`

What I 've tried:

What could be wrong? The driver's settings specify 2 major UMDF version. According to this it's supported up to 2.19.

Actually When I used to have this Windows version available there was no issue in installing my driver.

Thanks a lot.

Setup API log attached

[Device Install Log]
     OS Version = 10.0.14393
     Service Pack = 0.0
     Suite = 0x0100
     ProductType = 1
     Architecture = amd64

[BeginLog]

[Boot Session: 2023/01/24 17:50:03.842]

>>>  [Device Uninstall (Device Manager) - ROOT\UNKNOWN\0000]
>>>  Section start 2023/01/24 18:43:26.740
      cmd: "C:\Windows\system32\mmc.exe" "C:\Windows\system32\devmgmt.msc" 
     dvi: {DIF_REMOVE} 18:43:26.740
     dvi:      Default installer: Enter 18:43:26.740
     dvi:           {Remove DEVICE}
     dvi:                Query-and-Remove succeeded
     dvi:           {Remove DEVICE exit (0x00000000)}
     dvi:      Default installer: Exit
     dvi: {DIF_REMOVE - exit(0x00000000)} 18:43:26.771
     inf: {SetupUninstallOEMInf: oem10.inf}
     inf:      Flags: 0x00000001
     inf:      Driver Store Path: C:\Windows\System32\DriverStore\FileRepository\gpsdirect2.inf_amd64_d3d123adb5799c04\gpsdirect2.inf
     sto:      {Setup Delete Driver Package: C:\Windows\System32\DriverStore\FileRepository\gpsdirect2.inf_amd64_d3d123adb5799c04\gpsdirect2.inf} 18:43:26.771
     pol:           {Driver package policy check} 18:43:26.789
     pol:           {Driver package policy check - exit(0x00000000)} 18:43:26.819
     sto:           {Unstage Driver Package: C:\Windows\System32\DriverStore\FileRepository\gpsdirect2.inf_amd64_d3d123adb5799c04\gpsdirect2.inf} 18:43:26.819
     sto:                {DRIVERSTORE DELETE BEGIN} 18:43:26.819
     sto:                {DRIVERSTORE DELETE BEGIN: exit(0x00000000)} 18:43:26.819
     idb:                {Unpublish Driver Package: C:\Windows\System32\DriverStore\FileRepository\gpsdirect2.inf_amd64_d3d123adb5799c04\gpsdirect2.inf} 18:43:26.819
     idb:                     Clearing active driver package 'gpsdirect2.inf_amd64_d3d123adb5799c04'.
     cpy:                     Unpublished 'oem10.inf'.
     idb:                     Deindexed 2 device IDs for 'gpsdirect2.inf_amd64_d3d123adb5799c04'.
     sto:                     Flushed driver database node 'DRIVERS'. Time = 0 ms
     sto:                     Flushed driver database node 'SYSTEM'. Time = 47 ms
     idb:                {Unpublish Driver Package: exit(0x00000000)} 18:43:26.880
     idb:                {Unregister Driver Package: C:\Windows\System32\DriverStore\FileRepository\gpsdirect2.inf_amd64_d3d123adb5799c04\gpsdirect2.inf} 18:43:26.880
     idb:                     Unregistered driver package 'gpsdirect2.inf_amd64_d3d123adb5799c04' from 'oem10.inf'.
     idb:                     Deleted driver package object 'gpsdirect2.inf_amd64_d3d123adb5799c04' from DRIVERS database node.
     idb:                     Deleted driver INF file object 'oem10.inf' from DRIVERS database node.
     idb:                {Unregister Driver Package: exit(0x00000000)} 18:43:26.880
     cpy:                {Delete Directory: C:\Windows\System32\DriverStore\FileRepository\gpsdirect2.inf_amd64_d3d123adb5799c04} 18:43:26.880
     cpy:                {Delete Directory: exit(0x00000000)} 18:43:26.896
     sto:                {DRIVERSTORE DELETE END} 18:43:26.896
     sto:                {DRIVERSTORE DELETE END: exit(0x00000000)} 18:43:26.896
     sto:           {Unstage Driver Package: exit(0x00000000)} 18:43:26.896
     sto:      {Setup Delete Driver Package - exit (0x00000000)} 18:43:26.896
     inf: {SetupUninstallOEMInf exit (0x00000000)}
<<<  Section end 2023/01/24 18:43:26.896
<<<  [Exit status: SUCCESS]


>>>  [Device Install (DiInstallDevice) - ROOT\UNKNOWN\0000]
>>>  Section start 2023/01/24 18:43:36.167
      cmd: "C:\Windows\system32\mmc.exe" "C:\Windows\system32\devmgmt.msc" 
     ndv: Flags: 0x00000002
     dvi: Class GUID of device changed to: {5175d334-c371-4806-b3ba-71fd53c9258d}.
     sto: {Setup Import Driver Package: c:\low2\gpsdirect2.inf} 18:43:36.167
     inf:      Provider: Michael Chourdakis
     inf:      Class GUID: {5175D334-C371-4806-B3BA-71FD53C9258D}
     inf:      Driver Version: 01/24/2023,18.34.42.980
     inf:      Catalog File: gpsdirect2.cat
     sto:      {Copy Driver Package: c:\low2\gpsdirect2.inf} 18:43:36.183
     sto:           Driver Package = c:\low2\gpsdirect2.inf
     sto:           Flags          = 0x00000007
     sto:           Destination    = C:\Users\chour\AppData\Local\Temp\{3af1d6f1-be48-dc49-85f7-ef4d56ccf70b}
     sto:           Copying driver package files to 'C:\Users\chour\AppData\Local\Temp\{3af1d6f1-be48-dc49-85f7-ef4d56ccf70b}'.
     flq:           Copying 'c:\low2\gpsdirect2.cat' to 'C:\Users\chour\AppData\Local\Temp\{3af1d6f1-be48-dc49-85f7-ef4d56ccf70b}\gpsdirect2.cat'.
     flq:           Copying 'c:\low2\gpsdirect2.dll' to 'C:\Users\chour\AppData\Local\Temp\{3af1d6f1-be48-dc49-85f7-ef4d56ccf70b}\gpsdirect2.dll'.
     flq:           Copying 'c:\low2\gpsdirect2.inf' to 'C:\Users\chour\AppData\Local\Temp\{3af1d6f1-be48-dc49-85f7-ef4d56ccf70b}\gpsdirect2.inf'.
     sto:      {Copy Driver Package: exit(0x00000000)} 18:43:36.214
     pol:      {Driver package policy check} 18:43:36.214
     pol:      {Driver package policy check - exit(0x00000000)} 18:43:36.214
     sto:      {Stage Driver Package: C:\Users\chour\AppData\Local\Temp\{3af1d6f1-be48-dc49-85f7-ef4d56ccf70b}\gpsdirect2.inf} 18:43:36.214
     inf:           {Query Configurability: C:\Users\chour\AppData\Local\Temp\{3af1d6f1-be48-dc49-85f7-ef4d56ccf70b}\gpsdirect2.inf} 18:43:36.214
     inf:                Driver package uses WDF.
     inf:                Driver package 'gpsdirect2.inf' is configurable.
     inf:           {Query Configurability: exit(0x00000000)} 18:43:36.214
     flq:           Copying 'C:\Users\chour\AppData\Local\Temp\{3af1d6f1-be48-dc49-85f7-ef4d56ccf70b}\gpsdirect2.cat' to 'C:\Windows\System32\DriverStore\Temp\{c7402a41-51c3-1147-b380-51c7f0015ecc}\gpsdirect2.cat'.
     flq:           Copying 'C:\Users\chour\AppData\Local\Temp\{3af1d6f1-be48-dc49-85f7-ef4d56ccf70b}\gpsdirect2.dll' to 'C:\Windows\System32\DriverStore\Temp\{c7402a41-51c3-1147-b380-51c7f0015ecc}\gpsdirect2.dll'.
     flq:           Copying 'C:\Users\chour\AppData\Local\Temp\{3af1d6f1-be48-dc49-85f7-ef4d56ccf70b}\gpsdirect2.inf' to 'C:\Windows\System32\DriverStore\Temp\{c7402a41-51c3-1147-b380-51c7f0015ecc}\gpsdirect2.inf'.
     sto:           {DRIVERSTORE IMPORT VALIDATE} 18:43:36.231
     sig:                {_VERIFY_FILE_SIGNATURE} 18:43:36.246
     sig:                     Key      = gpsdirect2.inf
     sig:                     FilePath = C:\Windows\System32\DriverStore\Temp\{c7402a41-51c3-1147-b380-51c7f0015ecc}\gpsdirect2.inf
     sig:                     Catalog  = C:\Windows\System32\DriverStore\Temp\{c7402a41-51c3-1147-b380-51c7f0015ecc}\gpsdirect2.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)} 18:43:36.246
     sig:                {_VERIFY_FILE_SIGNATURE} 18:43:36.246
     sig:                     Key      = gpsdirect2.inf
     sig:                     FilePath = C:\Windows\System32\DriverStore\Temp\{c7402a41-51c3-1147-b380-51c7f0015ecc}\gpsdirect2.inf
     sig:                     Catalog  = C:\Windows\System32\DriverStore\Temp\{c7402a41-51c3-1147-b380-51c7f0015ecc}\gpsdirect2.cat
     sig:                     Success: File is signed in Authenticode(tm) catalog.
     sig:                     Error 0xe0000241: The INF was signed with an Authenticode(tm) catalog from a trusted publisher.
     sig:                {_VERIFY_FILE_SIGNATURE exit(0xe0000241)} 18:43:36.246
     sto:           {DRIVERSTORE IMPORT VALIDATE: exit(0x00000000)} 18:43:36.261
     sig:           Signer Score = 0x0F000000
     sig:           Signer Name  = MICHAIL CHOURDAKIS
     sto:           {DRIVERSTORE IMPORT BEGIN} 18:43:36.261
     sto:           {DRIVERSTORE IMPORT BEGIN: exit(0x00000000)} 18:43:36.261
     cpy:           {Copy Directory: C:\Windows\System32\DriverStore\Temp\{c7402a41-51c3-1147-b380-51c7f0015ecc}} 18:43:36.261
     cpy:                Target Path = C:\Windows\System32\DriverStore\FileRepository\gpsdirect2.inf_amd64_d3d123adb5799c04
     cpy:           {Copy Directory: exit(0x00000000)} 18:43:36.261
     idb:           {Register Driver Package: C:\Windows\System32\DriverStore\FileRepository\gpsdirect2.inf_amd64_d3d123adb5799c04\gpsdirect2.inf} 18:43:36.261
     idb:                Created driver package object 'gpsdirect2.inf_amd64_d3d123adb5799c04' in DRIVERS database node.
     idb:                Created driver INF file object 'oem10.inf' in DRIVERS database node.
     idb:                Registered driver package 'gpsdirect2.inf_amd64_d3d123adb5799c04' with 'oem10.inf'.
     idb:           {Register Driver Package: exit(0x00000000)} 18:43:36.261
     idb:           {Publish Driver Package: C:\Windows\System32\DriverStore\FileRepository\gpsdirect2.inf_amd64_d3d123adb5799c04\gpsdirect2.inf} 18:43:36.261
     idb:                Activating driver package 'gpsdirect2.inf_amd64_d3d123adb5799c04'.
     cpy:                Published 'gpsdirect2.inf_amd64_d3d123adb5799c04\gpsdirect2.inf' to 'oem10.inf'.
     idb:                Indexed 2 device IDs for 'gpsdirect2.inf_amd64_d3d123adb5799c04'.
     sto:                Flushed driver database node 'DRIVERS'. Time = 0 ms
     sto:                Flushed driver database node 'SYSTEM'. Time = 0 ms
     idb:           {Publish Driver Package: exit(0x00000000)} 18:43:36.261
     sto:           {DRIVERSTORE IMPORT END} 18:43:36.261
     dvi:                Flushed all driver package files to disk. Time = 15 ms
     sig:                Installed catalog 'gpsdirect2.cat' as 'oem10.cat'.
     sto:           {DRIVERSTORE IMPORT END: exit(0x00000000)} 18:43:36.308
     sto:      {Stage Driver Package: exit(0x00000000)} 18:43:36.308
     sto: {Setup Import Driver Package - exit (0x00000000)} 18:43:36.324
     dvi: Class GUID of device changed to: {5175d334-c371-4806-b3ba-71fd53c9258d}.
     dvi: {Plug and Play Service: Device Install for ROOT\UNKNOWN\0000}
     ndv:      Driver INF Path: C:\Windows\INF\oem10.inf
     ndv:      Driver Node Name: gpsdirect2.inf:c14ce884311a8e3a:gpsdirect2_Inst:18.34.42.980:umdf2\gpsdirect2
     ndv:      Driver Store Path: C:\Windows\System32\DriverStore\FileRepository\gpsdirect2.inf_amd64_d3d123adb5799c04\gpsdirect2.inf
     dvi:      Class GUID of device changed to: {5175d334-c371-4806-b3ba-71fd53c9258d}.
     ndv:      {Core Device Install} 18:43:36.574
!    pol:           Selected driver node does not match this device (force-install)
     ndv:           {Install Device - ROOT\UNKNOWN\0000} 18:43:36.574
     ndv:                Parent device: HTREE\ROOT\0
!    ndv:                Unable to determine matching device ID for oem10.inf. Error = 0xE0000228
!    ndv:                Unable to configure device, falling back to standard device installation.
     dvi:                {DIF_ALLOW_INSTALL} 18:43:36.589
     dvi:                     Using exported function 'CoDeviceInstall' in module 'C:\Windows\system32\WUDFCoinstaller.dll'.
     dvi:                     CoInstaller 1 == WUDFCoinstaller.dll
     dvi:                     CoInstaller 1: Enter 18:43:36.589
     dvi:                     CoInstaller 1: Exit
     dvi:                     Default installer: Enter 18:43:36.589
     dvi:                     Default installer: Exit
     dvi:                {DIF_ALLOW_INSTALL - exit(0xe000020e)} 18:43:36.589
     dvi:                {DIF_INSTALLDEVICEFILES} 18:43:36.589
     dvi:                     CoInstaller 1: Enter 18:43:36.589
     dvi:                     CoInstaller 1: Exit
     dvi:                     Default installer: Enter 18:43:36.605
     dvi:                     Default installer: Exit
     dvi:                {DIF_INSTALLDEVICEFILES - exit(0x00000000)} 18:43:36.605
     flq:                File 'C:\Windows\system32\DRIVERS\UMDF\gpsdirect2.dll' pruned from copy.
     dvi:                {DIF_REGISTER_COINSTALLERS} 18:43:36.605
     dvi:                     Reset Device: Resetting device configuration. 18:43:36.605
     dvi:                     Reset Device: Resetting device configuration completed. 18:43:36.605
     dvi:                     CoInstaller 1: Enter 18:43:36.605
     dvi:                     CoInstaller 1: Exit
     dvi:                     Default installer: Enter 18:43:36.627
     dvi:                          {DIF_DESTROYPRIVATEDATA} 18:43:36.627
     dvi:                               CoInstaller 1: Enter 18:43:36.627
     dvi:                               CoInstaller 1: Exit
     dvi:                               Default installer: Enter 18:43:36.627
     dvi:                               Default installer: Exit
     dvi:                          {DIF_DESTROYPRIVATEDATA - exit(0xe000020e)} 18:43:36.627
     dvi:                     Default installer: Exit
     dvi:                {DIF_REGISTER_COINSTALLERS - exit(0x00000000)} 18:43:36.627
     dvi:                {DIF_INSTALLINTERFACES} 18:43:36.627
     dvi:                     Using exported function 'CoDeviceInstall' in module 'C:\Windows\system32\WUDFCoinstaller.dll'.
     dvi:                     CoInstaller 1 == WUDFCoinstaller.dll
     dvi:                     CoInstaller 1: Enter 18:43:36.636
     dvi:                     CoInstaller 1: Exit
     dvi:                     Default installer: Enter 18:43:36.636
     dvi:                     Default installer: Exit
     dvi:                {DIF_INSTALLINTERFACES - exit(0x00000000)} 18:43:36.636
     dvi:                {DIF_INSTALLDEVICE} 18:43:36.636
     dvi:                     CoInstaller 1: Enter 18:43:36.636
     dvi:                     CoInstaller 1: Exit
     dvi:                     Default installer: Enter 18:43:36.636
     dvi:                          {Install DEVICE}
     dvi:                               {Writing Device Properties}
     dvi:                                    HardwareID=umdf2\gpsdirect2
     dvi:                                    Strong Name=oem10.inf:c14ce884311a8e3a:gpsdirect2_Inst:18.34.42.980:umdf2\gpsdirect2
     dvi:                               {Writing Device Properties - Complete}
     inf:                               AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall  (gpsdirect2.inf line 63)
     dvi:                               Add Service: Modified existing service 'WUDFRd'.
     dvi:                          {Install DEVICE exit (0x00000000)}
     dvi:                          Install Device: Configuring device class. 18:43:36.652
     dvi:                          Install Device: Configuring device class completed. 18:43:36.652
     dvi:                          Install Device: Starting device. 18:43:36.652
     dvi:                          Install Device: Starting device completed. 18:43:36.683
!!!  dvi:                          Device not started: Device has problem: 0x1f (CM_PROB_FAILED_ADD), problem status: 0xc0000001.
     dvi:                     Default installer: Exit
     dvi:                     CoInstaller 1: Enter (Post Processing) 18:43:36.683
     dvi:                     CoInstaller 1: Exit (Post Processing)
     dvi:                {DIF_INSTALLDEVICE - exit(0x00000000)} 18:43:36.683
     dvi:                {DIF_NEWDEVICEWIZARD_FINISHINSTALL} 18:43:36.683
     dvi:                     CoInstaller 1: Enter 18:43:36.683
     dvi:                     CoInstaller 1: Exit
     dvi:                     Default installer: Enter 18:43:36.683
     dvi:                     Default installer: Exit
     dvi:                {DIF_NEWDEVICEWIZARD_FINISHINSTALL - exit(0xe000020e)} 18:43:36.683
!    ndv:                Queueing up error report since device has a PnP problem...
     ndv:           {Install Device - exit(0x00000000)} 18:43:36.824
     ndv:      {Core Device Install - exit(0x00000000)} 18:43:36.824
     dvi:      {DIF_DESTROYPRIVATEDATA} 18:43:36.824
     dvi:           CoInstaller 1: Enter 18:43:36.824
     dvi:           CoInstaller 1: Exit
     dvi:           Default installer: Enter 18:43:36.824
     dvi:           Default installer: Exit
     dvi:      {DIF_DESTROYPRIVATEDATA - exit(0xe000020e)} 18:43:36.824
     ump: {Plug and Play Service: Device Install exit(00000000)}
<<<  Section end 2023/01/24 18:43:36.840
<<<  [Exit status: SUCCESS]
Windows Hardware Performance
Windows Hardware Performance
Windows: A family of Microsoft operating systems that run across personal computers, tablets, laptops, phones, internet of things devices, self-contained mixed reality headsets, large collaboration screens, and other devices.Hardware Performance: Delivering / providing hardware or hardware systems or adjusting / adapting hardware or hardware systems.
1,543 questions
0 comments No comments
{count} votes

3 answers

Sort by: Most helpful
  1. Wei 1 Reputation point
    2023-01-26T18:29:57.71+00:00

    The driver was installed to C:\Windows\System32\DriverStore. Doc can be found at run-from-driver-store and specifically, UMDF. UMDF supports running from driver store on Win10 version 1809 and later. Since your machine is version 1607, it won't work.

    If you're the author of the said driver, please follow up doc above to change to install the driver to %12%\UMDF.


  2. Wei 1 Reputation point
    2023-01-27T16:23:31.1566667+00:00

    Taking my previous answer back .. it is not about DIRID 13. Instead, the issue is that you're forcing the driver on a unrecognized device that the driver is not meant to work with. Is it possible that you've selected the wrong device in Device Manager to update the driver? Or else I'd be suprised it was ever workign at all.

      ndv:  {Core Device Install} 18:43:36.574
    ! pol:    Selected driver node does not match this device (force-install)
      ndv:    {Install Device - ROOT\UNKNOWN\0000} 18:43:36.574
      ndv:      Parent device: HTREE\ROOT\0
    ! ndv:      Unable to determine matching device ID for oem10.inf. Error = 0xE0000228
    

  3. Wei 1 Reputation point
    2023-01-30T16:13:36.69+00:00

    From the dbgprint below, and the fact that the machine is Win 10 version 1607:

    FxStubBindClasses: VersionBindClass WDF_CLASS_BIND_INFO 0x00007FFDB2145CF0, class SensorsCx, returned status 0xc000000d - STATUS_INVALID_PARAMETER

    The issue is that the SeonsrsCx in latest WDK does not work on older Windows. Please download the 1607 WDK and build your driver there.

    If you prefer to use newer WDK, the following might also work (that is, I have not tried it myself):

    • Download and install 1607 WDK on a spare machine
    • Copy the following files from 1607 WDK to the newer WDK:
        Program Files/Windows Kits/10/Include/<ver>/um/sensors/1.1
        Program Files/Windows Kits/10/Lib/<ver>/um/<arch>/sensors/1.1