30

I have kernel driver. When installing on 32 bit systems and Windows XP and below, I had no problem and used SetupCopyOEMInf, but 64 bit drivers are required to be signed. I have signed it and I need to have a cat file with the driver copied somewhere on the computer, and this method of install doesn't work. How should I install it?

EDIT: Clarified the question.

SurDin
  • 3,281
  • 4
  • 26
  • 28

2 Answers2

58

In Windows Vista and Windows 7 there a new utility for handling drivers setup call PnPUtil. It handles exactly this kind of work. Just copy all your driver relevant files(*.inf, *.cat, *.sys) to a directory on the target computer and use PnPUtil -i -a <InfName>.inf

Note: You will need to be in an administrator context to successfully use this tool.

Community
  • 1
  • 1
SurDin
  • 3,281
  • 4
  • 26
  • 28
  • 1
    Just so it is clear, I received an error stating the INF passed in was invalid until I ran the CMD as an Administrator, so do not expect some kind of access denied error. – hvaughan3 May 03 '18 at 14:14
1

You need to get an Authenticode signature, create a catalog file, and sign it with that. Microsoft decided that, for 64-bit systems, it will require the driver to come untampered from the vendor, by checking it signature.

(Note: This is not the same as WHQL, which tests the quality of the driver. Authenticode merely indicates that the driver hasn't been tampered with by some malicious user or virus; it doesn't say anything about what the driver does, so it's a relatively easy -- although pricey -- signature to obtain.)

Another solution is test-signing, if you don't plan on redistributing your program. https://technet.microsoft.com/library/dd919230.aspx

Sachin Joseph
  • 18,928
  • 4
  • 42
  • 62
user541686
  • 205,094
  • 128
  • 528
  • 886