Trying to get driver signed and infverif not liking the inf file I've used for years

Hi,

Can anyone enlighten me one what the heck I need to do to get my drivers signed? Have emails in to Microsoft support, they just said, yeah, the infverif says problems, but didn’t explain what the problem is. Below is a toaster example of the inf for the driver (for getting it signed, actual install of the driver doesn’t use an .inf). The errors are:

“line 8: Missing directive CatalogFile required for digital signature.”
“Line 10: Class “LegacyDriver” is reserved for use by Microsoft.”

But, the two CatalogFile directives are there unless my eyes are lying or there is something new created out of thin air? Also, this driver is actually one that loads as a “LegacyDriver”. It is not a plug-and-play driver. It also works on all Windows versions from NT4 through the latest Win10 versions. So any ideas? I’m sure others are going to run in to this problem. Thanks.

; toaster.inf
;
; Installation inf for the toaster Driver
;
; Copyright (c) Acme, Inc.
;

[Version]
Signature = “$Windows NT$”
Class = LegacyDriver
ClassGUID = {8ecc055d-047f-11d1-a537-0000f8753ed1}
Provider = %acme%
DriverVer = 08/05/2015,1.0.15.0
CatalogFile.NTx86 = toaster_x86.cat
CatalogFile.NTAMD64 = toaster_x64.cat

;
; General installation section
;

[DefaultInstall]
CopyFiles = @toaster.sys
Addreg = toaster.AddReg

[DestinationDirs]
DefaultDestDir = 12

[toaster.AddReg]
HKLM, “SYSTEM\CurrentControlSet\Services\toaster”, “ErrorControl”, 0x00010003, 1
HKLM, “SYSTEM\CurrentControlSet\Services\toaster”, “Start”, 0x00010003, 3
HKLM, “SYSTEM\CurrentControlSet\Services\toaster”, “Type”, 0x00010003, 1
HKLM, “SYSTEM\CurrentControlSet\Services\toaster\Parameters”, “ToasterVal”, 0x00010003, 4

[SourceDisksFiles]
toaster.sys=1

; Win2000

[SourceDisksNames]
1 = %diskid1%,\i386

; WinXP and later

[SourceDisksNames.x86]
1 = %diskid1%,\i386

[SourceDisksNames.amd64]
1 = %diskid1%,\amd64

;
; Localizable Strings
;

[Strings]

acme = “Acme, Inc.”
service_desc = “Toaster Filter Driver”
diskid1 = “Acme, Inc. Installation Disk #1 (Toaster)”

Hmmm…

The only thing that I can think of is that INFVERIF hates your decorations? Have you tried creating a multi-architecture INF file?

In terms of class, try just leaving it out. IIRC, you don’t specify a class for a non-PnP INF.

Peter
OSR
@OSRDrivers

Using just a single “CatalogFile” makes it happy.

But it doesn’t like no class, “Missing Class directive”

So get this, I just put in a “Class=” instead so now it complains that:

"Class name and ClassGuid mismatch, expecting Class “LegacyDriver” for ClassGuid “{xxx}”.

So now in a catch 22.

Any ideas?

xxxxx@terabyteunlimited.com wrote:

Using just a single “CatalogFile” makes it happy.

But it doesn’t like no class, “Missing Class directive”

So get this, I just put in a “Class=” instead so now it complains that:

"Class name and ClassGuid mismatch, expecting Class “LegacyDriver” for ClassGuid “{xxx}”.

So now in a catch 22.

Any ideas?

Make one up.

    Class=NotReally
    ClassGuid={a-guid-that-you-create-with-uuidgen}


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Re: CatalogFile

InfVerif didn’t like this because [DefaultInstall] would install on any architecture, but you only had a CatalogFile for x86 and AMD64. If you change [DefaultInstall] to [DefaultInstall.NTAMD64], for example, then it would work (undecorating CatalogFile has the same effect). I would actually recommend that you decorate your [DefaultInstall] rather than undecorate the CatalogFile, since your binary will presumably not work on every single architecture. If you undecorate everything it will install everywhere, even on systems where it wouldn’t function.

Re:class
Probably easiest to use System class.

Class = System
ClassGuid = {4d36e97d-e325-11ce-bfc1-08002be10318}

-----Original Message-----
From: xxxxx@lists.osr.com On Behalf Of xxxxx@probo.com
Sent: Tuesday, June 12, 2018 10:54 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Trying to get driver signed and infverif not liking the inf file I’ve used for years

xxxxx@terabyteunlimited.com wrote:
> Using just a single “CatalogFile” makes it happy.
>
> But it doesn’t like no class, “Missing Class directive”
>
> So get this, I just put in a “Class=” instead so now it complains that:
>
> "Class name and ClassGuid mismatch, expecting Class “LegacyDriver” for ClassGuid “{xxx}”.
>
> So now in a catch 22.
>
> Any ideas?

Make one up.

Class=NotReally
ClassGuid={a-guid-that-you-create-with-uuidgen}


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.


NTDEV is sponsored by OSR

Visit the list online at: https:

MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
Details at https:

To unsubscribe, visit the List Server section of OSR Online at https:</https:></https:></https:>

Thanks for everyone for the feedback. This new version makes everyone happy:

; toaster.inf
;
; Installation inf for the toaster Driver
;
; Copyright (c) Acme, Inc.
;

[Version]
Signature = “$Windows NT$”
Class = System
ClassGuid = {4d36e97d-e325-11ce-bfc1-08002be10318}
Provider = %acme%
DriverVer = 08/05/2015,1.0.15.0
CatalogFile.NTx86 = toaster_x86.cat
CatalogFile.NTAMD64 = toaster_x64.cat

;
; General installation section
;

[DefaultInstall.NTx86]
CopyFiles = @toaster.sys
Addreg = toaster.AddReg

[DefaultInstall.NTAMD64]
CopyFiles = @toaster.sys
Addreg = toaster.AddReg

[DestinationDirs]
DefaultDestDir = 12

[toaster.AddReg]
HKLM, “SYSTEM\CurrentControlSet\Services\toaster”, “ErrorControl”, 0x00010003, 1
HKLM, “SYSTEM\CurrentControlSet\Services\toaster”, “Start”, 0x00010003, 3
HKLM, “SYSTEM\CurrentControlSet\Services\toaster”, “Type”, 0x00010003, 1
HKLM, “SYSTEM\CurrentControlSet\Services\toaster\Parameters”, “ToasterVal”, 0x00010003, 4

[SourceDisksFiles]
toaster.sys=1

; Win2000

[SourceDisksNames]
1 = %diskid1%,\i386

; WinXP and later

[SourceDisksNames.x86]
1 = %diskid1%,\i386

[SourceDisksNames.amd64]
1 = %diskid1%,\amd64

;
; Localizable Strings
;

[Strings]

acme = “Acme, Inc.”
service_desc = “Toaster Filter Driver”
diskid1 = “Acme, Inc. Installation Disk #1 (Toaster)”

And just for the record for the MSFT guys, the link at the top of the page for “support” in the dev hardware dashboard was a nice thing to have, figured it was specific to that portal (perhaps to the sysdev team), only it must not since the final response to the same question I asked here was:

“Please understand same checking on server side is implemented since around end of April 2018.
I don’t know why this is implemented.
Since we are NOT technical support, please contact professional support when you need assistance.
There is nothing I can do here.
Sorry for inconvenience.”