xxxxx@hotmail.com wrote:
I forgot to say as well. I have code 39 if I include the catalog file.
Code 39 can mean you tried to load an IA64 (Itanium) driver on an x64
system, or it can mean the signature was not correct.
(I borrowed a license from a company and so Drivers and everything are properly signed so that isn’t an issue.)
How do you know the driver is properly signed? How did you sign it?
Wat kind of certificate is it? You have to use a Class 3 code-signing
certificate from one of the very short list of KMCS-approved vendors,
and you have to include the correct “cross-signing” certificate for that
vendor.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Thanks Tim.
The answers are, I have tried with both the IA64 and Amd64. If one didn’t work I was sure the other would, the drivers are signed with an approved verisign certificate so is the catalog file. The code is simple and compiled correctly, if I don’t include a “inf2cat” generated catalog file, I get the error “Driver is not planned for this platform.” (German translation.) If I include the generated catalog file I get the code 39 but I cannot discover which files are missing or corrupt.
The same code if compiled for Vista 32bit works successfully on Vista 32bit. Neither the Amd64 or Ia64bit versions work on Vista 64bit.
The code to the driver is simply.
#include <ntddk.h> NTSTATUS DriverEntry(DriverObject, RegPath) { return STATUS_SUCCESS; }
I’ve double checked the file. I ran “signtool.exe verify /pa /v c:\windows\system32\drivers\TheDriver.sys” and it says verified successfully. However if I go through Hardware Manager, choose the faulty driver (the one I installed.) It says “c:\windows\system32\drivers\TheDriver.sys” Nicht digital signiert… (Not signed)
—
xxxxx@hotmail.com wrote:
> Thankyou very much Maxim that was the answer I thought. Thankyou.
>
> Ok. I’ve done all that but the driver still doesn’t load. So I began stripping
it of everything and this is what I ended up with.
> …
> Yes it is that simple. I haven’t tried compiling this for a 32bit machine
because I strongly believe it will work, anyways I compiled this for both Vista
x86 and Vista ia64, neither work. After I load them manually via the ‘manual’
part of the hardware wizard I get the errors.
> (Please note these have been translated from German.)
>
> In the device Installation, a mistake appeared.
>
> Driver is not planned for this platform.
<…excess quoted lines suppressed…>
The “Vista x86” environment builds a 32-bit driver. The “Vista ia64”
environment builds a 64-bit driver for Itanium systems. The odds are
vanishingly low that you actually have an Itanium processor. If you are
running Vista 64-bit or Windows 7 64-bit, then you want the “amd64” or
“x64” environment.
Also note that 64-bit drivers must be digitally signed with an approved
code-signing certificate, or else they will not load. You can override
this at boot time by turning off the driver signing requirement, or by
attaching a kernel debugger.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.</ntddk.h>
I am using a Verisign Class 3 Code signing cerificate.
I generated the PFX file from the PVF and SPC files given to me. I then installed this certificate and used it to generated the signed driver.
I signed both the catalog and the driver before I tried installing the driver.
Gary, if I could get that far then yes.
xxxxx@hotmail.com wrote:
The answers are, I have tried with both the IA64 and Amd64. If one didn’t work I was sure the other would, the drivers are signed with an approved verisign certificate so is the catalog file. The code is simple and compiled correctly, if I don’t include a “inf2cat” generated catalog file, I get the error “Driver is not planned for this platform.” (German translation.) If I include the generated catalog file I get the code 39 but I cannot discover which files are missing or corrupt.
Vista was never released for Itanium. If you are running Vista, then
you should forget about ia64 completely.
How are you installing the driver? Are you using dpinst? Remember, if
you are just copying the files into place, the system has no idea how to
locate your .cat file to check the signature.
I’ve double checked the file. I ran “signtool.exe verify /pa /v c:\windows\system32\drivers\TheDriver.sys” and it says verified successfully. However if I go through Hardware Manager, choose the faulty driver (the one I installed.) It says “c:\windows\system32\drivers\TheDriver.sys” Nicht digital signiert… (Not signed)
Signing with the certificate alone is not enough. Your call to
“signtool” must use the /ac parameter to add the proper secondary
“cross-signing” certificate. In particular, the “/pa” option is not the
correct authentication check for KMCS signatures. Try doing this:
signtool /kp /v c:\windows\system32\drivers\TheDriver.sys
You should see a “cross certificate chain” that ends at the Microsoft
Code Verification Root. If you don’t see that root, then you are not
signing it properly.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
xxxxx@hotmail.com wrote:
I am using a Verisign Class 3 Code signing cerificate.
I generated the PFX file from the PVF and SPC files given to me. I then installed this certificate and used it to generated the signed driver.
I signed both the catalog and the driver before I tried installing the driver.
But are you also using the Verisign cross-certificate? You MUST have
that to satisfy KMCS. The KMCS certificate process is different from
the application certificate process. The cross certificate would be
called MSVC-VSClass3.cer, and can be downloaded from here:
http://www.microsoft.com/whdc/winlogo/drvsign/crosscert.mspx
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Tim, Thankyou very much. It worked as you suggested.