none
Custom SHIM no longer works on Windows 2016/2019 RRS feed

  • Question

  • I'm following this example here, it works on Windows 7-2012:
    gist.github.com/w4kfu/95a87764db7029e03f09d78f7273c4f4

    But on Windows 2016/2019, the DLL is not injected into calc.exe (or win32calc.exe, I've modified the EXE tag).

    From the output of procmon, Windows never tried to read the custom SDB file / dll file.

    Any ideas?

    Sunday, November 17, 2019 1:43 AM

All replies

  • Hi,

    Thanks for posting here.

    Can you confirm that the .sdb file has been install into the %WindowsDir%Apppatch?

    After you deploy and store the customized databases on each of your local computers, you must register the database files. Until you register the database files, the operating system is unable to identify the available compatibility fixes when starting an application.

    Also attention that, in the following document, Windows server 2019 is not included.

    https://docs.microsoft.com/en-us/windows/deployment/planning/using-the-sdbinstexe-command-line-tool

    Best Regards,

    Drake


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Monday, November 18, 2019 9:48 AM
    Moderator
  • Yes, I ran sdbinst to install it.

    SDB file is copied and multiple registry keys created.

    Monday, November 18, 2019 1:03 PM
  • Hi,

    You can try to use the Compatibility Administrator Toolkit to check the Databases that installed in system.

    The toolkit can be downloaded in the Windows ADK.

    https://docs.microsoft.com/en-us/windows-hardware/get-started/adk-install#adkwin10

    Then test run the program. 

    In addtion, Could you share your specific steps in details? Thanks.

    Best Regards,

    Drake


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Tuesday, November 19, 2019 8:45 AM
    Moderator
  • The database is installed for sure, it's visible in compat manager 10.1.

    1.  Create shim database with apphelp.dll

    2. use sdbinst to install the DB, no error reported

    The exact same steps works on Windows 2008 / 2012, just not working on Windows 2016 and later.

    Tuesday, November 19, 2019 9:39 AM
  • Hi Dev,

    Thanks for the detailed info for this issue.

    Does the Compatibility Fix created by manually can works on Windows 2016? You can follow the docs below to Creating a New Compatibility Fix from Compatibility Administrator tool:

    https://docs.microsoft.com/en-us/windows/deployment/planning/creating-a-custom-compatibility-fix-in-compatibility-administrator

    And here is article about using Compatibility Administrator utility in Windows:

    https://support.microsoft.com/en-us/help/317510/how-to-use-the-compatibility-administrator-utility-in-windows

    Regards & Fei



    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Friday, November 22, 2019 6:52 AM