none
Why WIA WLK Imaging Tests: "Driver Robustness Test" fails because of %%SystemRoot%% use in HKCR,CLSID path in inf ? RRS feed

  • Question

  • Hello Community,

    We are facing an error in WIA WLK certification testing ( Driver Robustness Test) as shown below:

    0x8007007E: LoadLibrary( ystemRoot\System32\XXX.dll) failed.

    The only change we have made in our driver inf file is modifying highlighted line in below AddReg section:

    [WSDScanDriver.AddReg]

    HKCR,CLSID\{00000000-0000-0000-0000-000000000000}\InProcServer32,,0x00020000,%%SystemRoot%%\System32\XXX.dll

    Before WLK (Driver Robustness Test) was pass with below AddReg section in inf:

    [WSDScanDriver.AddReg]

    HKCR,CLSID\{00000000-0000-0000-0000-000000000000}\InProcServer32,,,%11%\XXX.dll

    We could not find any reference about WLK Driver Robustness Test in MS Documentation below link:

    https://docs.microsoft.com/en-us/previous-versions/windows/hardware/wlk/ff563412(v=vs.85)

    Please let us know why this test fails in case of %%SystemRoot%% and not %11% ?

    Regards,

    Divya



    • Edited by Divya Kr Tuesday, July 16, 2019 10:22 AM
    Tuesday, July 16, 2019 10:18 AM

All replies

  • Have you checked the registry to see if that's literally the value that is being inserted?  I would think you would have checked that before running the tests.

    I assume you aren't literally using 00000000-0000-etc as your GUID.  That would be totally invalid.

    Have you tried enclosing the string in quotes?

        HKCR,CLSID\{00000000-...}\InProcserver32,,0x00002000,"%%sSystemRoot%%\System32\XXX.dll"

    If %11% was working, why change it?


    Tim Roberts | Driver MVP Emeritus | Providenza & Boekelheide, Inc.

    Tuesday, July 16, 2019 5:46 PM
  • Thank you Tim.

    I have not used  00000000-0000-etc as GUID in inf. Also, I checked Registry is having correct value inserted.

    I tried even enclosing the string in quotes but still no success for WLK Driver Robustness Test.

    Quotes enclosing generates WLK error log as shown below:

    0x8007007E: LoadLibrary( 0ystemRoot\System32\XXX.dll ) failed

    It was changed from %11% to %%SystemRoot%% because of following error generated by InfVerif.exe tool.

    Validating mydrivinf.inf ERROR(1258) in D:\mydrivinf.inf, line xxx: File path "%11%" in registry may be incorrect in some contexts, use %%SystemRoot%% instead. INF is NOT VALID Checked 1 INF(s) in 0 m 0 s 14 ms

    Regards,

    Divya





    • Edited by Divya Kr Wednesday, July 17, 2019 6:30 AM
    Wednesday, July 17, 2019 5:02 AM
  • In the registry, is the value set to REG_EXPAND_SZ?  And the text is literally %SystemRoot%\System32\XXX.dll?  I know I asked you before, but I think you know we often see what we WANT to see, and this seems like a very likely source of the error.

    I don't understand the InfVerif complaint.  %11% was specifically designed for uses like this.

    The default location for InProcServer32 is c:\Windows\System32, so you could actually omit the path, although that seems tacky.  What you're doing ought to work.


    Tim Roberts | Driver MVP Emeritus | Providenza & Boekelheide, Inc.

    Wednesday, July 17, 2019 5:40 PM
  • Thanks Tim,

    Yes, registry value is set to REG_EXPAND_SZ and path set as %SystemRoot%\System32\XXX.dll.

    I had to make the change from %11% to %%SystemRoot%%, only because of InfVerif error :

    "File path "%11%" in registry may be incorrect in some contexts, use %%SystemRoot%% instead"

    If %11% is alright to use then  InfVerif.exe tool needs to be rectified for its generated errors because we depend upon InfVerif tool extensively for our driver inf validation.  

    What can MS propose for my query? Can I revert it back to %11% ignoring InfVerif error? 

    Regards,

    Divya



    • Edited by Divya Kr Thursday, July 18, 2019 5:06 AM
    Thursday, July 18, 2019 5:04 AM