I’ve now wasted literally man-weeks of time on modifying several (well two)
build systems to automate the generation of signed driver packages and I am
left with one lingering mystery: what the heck is the proper format of the
CDF file fed to makecat?
Oh I know all about this template:
[CatalogHeader]
Name=DRIVER_NAME.cat
PublicVersion=0x0000001
EncodingType=0x00010001
CATATTR1=0x10010001:OSAttr:2:6.0
[CatalogFiles]
File1.inf=File1.inf
File2.sys=File2.sys
And that actually seems to work. But there appears to be no documentation at
all for CATATTR1 or OSAttr. What exactly are those values? Do they matter?
Are they even required?
A cat file produced using the above template appears to be correct but does
not have File or OSAttr fields in the Entry details section of the cat file,
while random stuff out in the wild with valid signed cat files consistently
have these fields.
As far as I can tell, cat files without these two fields are just as good as
those with them, but it sure would help if ANY of this were documented.
–
Mark Roddy
Mark,
I don’t have the answer to your specific question. I have never had to make
those files myself, although I did try doing so early on.
However, if you use the inf2cat tool it does a dandy job of 1.) making
signability checks and 2.) making cat files from a “package” folder
containing INF’s and files referenced by the INFs. Just run the tools and
presto the cat files are made for you.
The WDK 6000 includes inf2cat, but it is omitted from WDK 6001. The most
current inf2cat, which supports Windows Server 2008, is part of the “Winqual
Submission Tool 2”, downloadable from the Winqual site.
Thomas F. Divine
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Mark Roddy
Sent: Saturday, November 24, 2007 10:54 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Ok, I give up, is there any documentation that actually
describes CDF file formats?
I’ve now wasted literally man-weeks of time on modifying several (well two)
build systems to automate the generation of signed driver packages and I am
left with one lingering mystery: what the heck is the proper format of the
CDF file fed to makecat?
Oh I know all about this template:
[CatalogHeader]
Name=DRIVER_NAME.cat
PublicVersion=0x0000001
EncodingType=0x00010001
CATATTR1=0x10010001:OSAttr:2:6.0
[CatalogFiles]
File1.inf=File1.inf
File2.sys=File2.sys
And that actually seems to work. But there appears to be no documentation at
all for CATATTR1 or OSAttr. What exactly are those values? Do they matter?
Are they even required?
A cat file produced using the above template appears to be correct but does
not have File or OSAttr fields in the Entry details section of the cat file,
while random stuff out in the wild with valid signed cat files consistently
have these fields.
As far as I can tell, cat files without these two fields are just as good as
those with them, but it sure would help if ANY of this were documented.
–
Mark Roddy
— NTDEV is sponsored by OSR For our schedule of WDF, WDM, debugging and
other seminars visit: http://www.osr.com/seminars To unsubscribe, visit the
List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
inf2cat is fine except that it is not particularly helpful for what I am
doing. The CDF file, with its readily parsable list of files, is most
amenable to using as part of the build process to create a ‘driver package’
that consists of all of the signed files, the cat file, and other misc. bits
and pieces such as the test cert itself, and as the trigger for generating
all of that from within a makefile. The fact that inf2cat got disappeared
from the 6001 ddk makes relying on it even more problematic.
I remain astounded that the CDF format is undocumented other than in
isolated bits and pieces.
On Nov 24, 2007 11:23 PM, Thomas F. Divine wrote:
> Mark,
>
>
>
> I don’t have the answer to your specific question. I have never had to
> make those files myself, although I did try doing so early on.
>
>
>
> However, if you use the inf2cat tool it does a dandy job of 1.) making
> signability checks and 2.) making cat files from a “package” folder
> containing INF’s and files referenced by the INFs. Just run the tools and
> presto the cat files are made for you.
>
>
>
> The WDK 6000 includes inf2cat, but it is omitted from WDK 6001. The most
> current inf2cat, which supports Windows Server 2008, is part of the “Winqual
> Submission Tool 2”, downloadable from the Winqual site.
>
>
>
> Thomas F. Divine
>
>
>
>
>
> From: xxxxx@lists.osr.com [mailto:
> xxxxx@lists.osr.com] *On Behalf Of *Mark Roddy
> Sent: Saturday, November 24, 2007 10:54 PM
> To: Windows System Software Devs Interest List
> Subject: [ntdev] Ok, I give up, is there any documentation that actually
> describes CDF file formats?
>
>
>
>
> I’ve now wasted literally man-weeks of time on modifying several (well
> two) build systems to automate the generation of signed driver packages and
> I am left with one lingering mystery: what the heck is the proper format of
> the CDF file fed to makecat?
>
>
>
> Oh I know all about this template:
>
>
>
> [CatalogHeader]
> Name=DRIVER_NAME.cat
> PublicVersion=0x0000001
> EncodingType=0x00010001
> CATATTR1=0x10010001:OSAttr:2:6.0
> [CatalogFiles]
> File1.inf=File1.inf
> File2.sys=File2.sys
>
>
>
> And that actually seems to work. But there appears to be no documentation
> at all for CATATTR1 or OSAttr. What exactly are those values? Do they
> matter? Are they even required?
>
>
>
> A cat file produced using the above template appears to be correct but
> does not have File or OSAttr fields in the Entry details section of the cat
> file, while random stuff out in the wild with valid signed cat files
> consistently have these fields.
>
>
>
> As far as I can tell, cat files without these two fields are just as good
> as those with them, but it sure would help if ANY of this were documented.
>
>
>
>
> –
> Mark Roddy
>
> — NTDEV is sponsored by OSR For our schedule of WDF, WDM, debugging and
> other seminars visit: http://www.osr.com/seminars To unsubscribe, visit
> the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>
–
Mark Roddy
Mark Roddy wrote:
The fact that inf2cat got disappeared from the 6001 ddk makes relying
on it even more problematic.
If I recall correctly, inf2cat is part of the Winqual Submission Tool, not the WDK.
Mark Roddy wrote:
mr> […] there appears to be no documentation at all
mr> for CATATTR1 or OSAttr.
Looks like there is at least some for CATATTR1.
What I read from the MSDN documentation for MakeCat
(http://msdn2.microsoft.com/en-us/library/aa386967.aspx)
is that “CATATTR1” is just an “ATTRx”.
From the MakeCat documentation for “ATTRx”, “type”, “oid”, and “value”
I read that CATATTR1 contains a signed, plaintext, name-value pair that
is to be included in the CAT file hash.
The contained name is “OSAttr”, the value is “2:6.0”.
The semantics of the “OSAttr” value seems not to be documented.
Looks like e.g. “FirstValidatedMajorVersion:MajorVersion.MinorVersion”
to me, but this is just a pure guess.
(Last year I delved briefly into using MakeCat because of a Signability
bug, see http://www.osronline.com/showthread.cfm?link=106121.
Back then I also observed these additional attributes.)
BR -H