none
Win8 64-bit Install Loop with Unidrv based drivers RRS feed

  • Question

  • The Unidrv driver samples (e.g. Generic Text-Only Driver and the many OEM Printer Customization Plug-in Samples like BITMAP and OEMUI) don't install for me. During the install it gets stuck in a loop and keeps asking to name the printer, over and over and never finishes the install. I've install Windows 8 64-bit on a freshly formatted hard drive. I installed VS2012 and Windows Driver Kit 8. The driver was compiled as 64-bit. Is this a known problem or is this problem unique to me? Is there a work-around or fix available? Has anyone else tried this?
    • Edited by Legi Dude Tuesday, October 2, 2012 3:55 PM
    Tuesday, October 2, 2012 3:35 PM

Answers

  • Thanks. Signing the driver did the trick. These are the steps I used to sign the driver so it would install:

    • Add this lines to the .inf file under the [Version] section:
      • CatalogFile.NTAMD64=amd.cat
    • Create a digital certificate to test with
      • MakeCert -r -pe -ss PrivateCertStore -n "CN=Test" Test.cer
    • Install the certificate in the Trusted Root Certification Authorities certificate store of the local computer (run as administrator)
      • CertMgr /add Test.cer /s /r localMachine root
    • Create a catalog file for the driver package
      • inf2cat /drv:. /os:8_X64
    • Sign the catalog file with SignTool
      • SignTool sign /v /s PrivateCertStore /n "Test" /t http://timestamp.versign.com/scripts/timstamp.dll amd64.cat

    These commands were run on a Windows 8 64-bit system with VS2012 and the Windows Driver Kit (WDK 8) installed.


    Legi Dude





    • Marked as answer by Legi Dude Thursday, October 18, 2012 9:00 PM
    • Edited by Legi Dude Tuesday, October 23, 2012 2:35 PM
    Thursday, October 18, 2012 8:58 PM
  • Adding to above...

    1. Test certificate also needs to be installed in Trusted Publishers (Local Computer) apart from Trusted Root Certification Authorities. Otherwise Win8- x64 will prompt a confirmation message while installing the driver. By adding cert to Trusted Publishers (Local Computer), we can bypass this.

    2. VS 2012 is NOT a prequisite to make it work on Win8 x64. However WDK8 is required as we need to use the tools from C:\Program Files (x86)\Windows Kits\8.0\bin\

    Tuesday, October 30, 2012 4:49 AM
  • Near the end of the "Build the sample" section of description.html, you can see this line: "In order to configure driver signing and deployment, see Developing, Testing, and Deploying Drivers." You should follow the link to have the sample driver built signed, then test it.
    • Marked as answer by Legi Dude Thursday, October 18, 2012 8:40 PM
    Thursday, October 4, 2012 1:44 AM

All replies

  • In the install loop, did you get any error message popup telling you what went wrong? One possible reason for getting into this loop is there are driver package files missing in the driver package you built (in that case you should get a file not found error popup though).

    In the "OEM Printer Customization Plug-in Samples" you downloaded, you can find the description.html file that explains each sample driver in the group, and also contains a section "Build the sample" that shows you how to build the sample in VS2012, including how to add the non-DLL driver files (e.g. INFs, INIs, GPD/PPD files, etc.) into the driver package project.

    • Marked as answer by Doron Holan [MSFT] Wednesday, October 3, 2012 3:34 AM
    • Unmarked as answer by Legi Dude Wednesday, October 3, 2012 9:58 AM
    Tuesday, October 2, 2012 11:48 PM
  • No error message, just the warning about the driver not being signed. It asked me if I'd like to continue and of course I say yes. Then it pops up with the printers name question again. This happens over and over until I'm forced to give up and just hit cancel.

    As far as building the sample, that seems to work fine. These are unmodified sample print drivers except for changing the active platform to x64. I also get the same problem when trying to install any of the Unidrv-based samples from WDK 7600.16385.1 which installs just fine in Windows 7.

    I didn't "add the non-DLL driver files" to the "driver package project", I just tried installing from an install folder that I created with the needed files. For example:

    tty.gpd
    tty.inf
    tty.ini
    ttyui.hlp
    x64\TTY.dll
    x64\TTYRES.dll
    x64\TTYUI.dll

    I'm hoping someone else can try installing one of the Unidrv-based driver samples in Windows 8 x64 to see if it's just something I've done wrong or whether this happens for other people too.






    • Edited by Legi Dude Wednesday, October 3, 2012 12:31 PM
    Wednesday, October 3, 2012 10:00 AM
  • Near the end of the "Build the sample" section of description.html, you can see this line: "In order to configure driver signing and deployment, see Developing, Testing, and Deploying Drivers." You should follow the link to have the sample driver built signed, then test it.
    • Marked as answer by Legi Dude Thursday, October 18, 2012 8:40 PM
    Thursday, October 4, 2012 1:44 AM
  • Thanks. Signing the driver did the trick. These are the steps I used to sign the driver so it would install:

    • Add this lines to the .inf file under the [Version] section:
      • CatalogFile.NTAMD64=amd.cat
    • Create a digital certificate to test with
      • MakeCert -r -pe -ss PrivateCertStore -n "CN=Test" Test.cer
    • Install the certificate in the Trusted Root Certification Authorities certificate store of the local computer (run as administrator)
      • CertMgr /add Test.cer /s /r localMachine root
    • Create a catalog file for the driver package
      • inf2cat /drv:. /os:8_X64
    • Sign the catalog file with SignTool
      • SignTool sign /v /s PrivateCertStore /n "Test" /t http://timestamp.versign.com/scripts/timstamp.dll amd64.cat

    These commands were run on a Windows 8 64-bit system with VS2012 and the Windows Driver Kit (WDK 8) installed.


    Legi Dude





    • Marked as answer by Legi Dude Thursday, October 18, 2012 9:00 PM
    • Edited by Legi Dude Tuesday, October 23, 2012 2:35 PM
    Thursday, October 18, 2012 8:58 PM
  • Adding to above...

    1. Test certificate also needs to be installed in Trusted Publishers (Local Computer) apart from Trusted Root Certification Authorities. Otherwise Win8- x64 will prompt a confirmation message while installing the driver. By adding cert to Trusted Publishers (Local Computer), we can bypass this.

    2. VS 2012 is NOT a prequisite to make it work on Win8 x64. However WDK8 is required as we need to use the tools from C:\Program Files (x86)\Windows Kits\8.0\bin\

    Tuesday, October 30, 2012 4:49 AM
  • Sorry !!!!

    Sorry!

    These line :

      • MakeCert -r -pe -ss PrivateCertStore -n "CN=Test" Test.cer
    • Install the certificate in the Trusted Root Certification Authorities certificate store of the local computer (run as administrator)
      • CertMgr /add Test.cer /s /r localMachine root
    • Create a catalog file for the driver package
      • inf2cat /drv:. /os:8_X64
    • Sign the catalog file with SignTool
    SignTool sign /v /s PrivateCertStore /n "Test" /t http://timestamp.versign.com/scripts/timstamp.dll amd64.cat


    It does not work!
    My personal driver will not install.
    Error: "Driver not digitally signed ....."when install since add hardware manager from control panel.

    Sorry ;

    It

    Sunday, November 25, 2012 6:42 PM