Bob
Mon Apr 25 11:36:02 CDT 2005
You're right, I had included the pdb file in the .inf so that I didn't need
an additional component in the msi file. I then found that just including it
in the inf meant that it needed to be included in the .cat. Also, copying
anything into the system dir throws up a red flag during certification that
needs to be explained. Having it as part of the inf file would make that
somewhat easier (and the pdb is in there BECAUSE of datacenter
certification, anyway).
In any case, it turned out that I was mistaken. Taking out the pdb file
didn't actually make it all work. It still complains that the file is not
signed.
One thing that I've found is that when upgrading from DIFx 1.1 to 2.0 is
that it has different requirements for the DriverPackageType field in the
[Version] section of the inf. In DIFx1.1, it can take one of:
ClassFilter
FileSystem
FileSystemFilter
FileSystemMinifilter
KernelModule
KernelService
Network
NdisImMiniport
PlugAndPlay
In 2.0, it can only have 1 of 2 values:
ClassFilter
PlugAndPlay
Unfortunately, after updating that it still doesn't take it....
Thanks,
Bob
"Maxim S. Shatskih" <maxim@storagecraft.com> wrote in message
news:uWREtcUSFHA.3944@TK2MSFTNGP10.phx.gbl...
> Why signing the PDB file? It is not needed for installation anyway. It
> is
> needed for debugger only, and is "installed" by stupid copying to the
> debugger's symbol directory.
>
> --
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> maxim@storagecraft.com
>
http://www.storagecraft.com
>
> "Bob K" <bobk123456@newsgroup.nospam> wrote in message
> news:%23GrYafTSFHA.2680@TK2MSFTNGP09.phx.gbl...
>> I do recreate the .cat file after each build. I assume that is necessary
>> since it hashes the files being signed. I use makecat.exe and have had no
>> trouble (as far as I can tell). What is "signability.exe"? I can't find
>> any
>> reference to it.
>>
>> I have gotten somewhere. I've removed the symbol file from the group of
>> files being signed. Having the pdb file signed worked on DIFxApp 1.1, but
>> doesn't seem to on 2.0. If I remove the pdb, then it WILL install on XP
>> and
>> win2003. It WON'T install on a win2k machine, though. I get a slightly
>> different error on win2k:
>>
>> DIFXAPP: ERROR: Driver package 'driver.inf' is unsigned. (Error code
>> 0x800B0100: No signature was present in the subject.)
>>
>> New news: It does install successfully on two OTHER win2k servers. They
>> are
>> all SP4. Why would one say it isn't signed and the others install it
>> without
>> a problem?
>>
>> Since the signing requirement only covers Windows 2003, I really don't
>> need
>> to spend too much time trying to figure this one out. I can just NOT sign
>> the win2k driver and still should pass the win2003 Certification.
>>
>> Thanks.
>>
>> Bob
>>
>>
>>
>> "usfinecats" <usfinecats@nospam.nospam> wrote in message
>> news:C7FD3B4D-E198-47DF-BACC-C2603D1B8189@microsoft.com...
>> > Bob, I was buried in a similar problem with 1.1 Difx. Sounds like the
>> > inf
>> > file is not signed correctly.
>> >
>> > I ended up Nuking the .CAT file each time I rebuilt my stuff. I then
>> > recreated the .Cat file with signability.exe and then ran signcode.exe
>> > on
>> > this result.
>> >
>> > I had problem creating the cat file with MakeCat and I had problems
>> > trying
>> > to overwrite the signatures in the CAT file if the Cat file had already
>> > been
>> > signed.
>> >
>> > Since then things are working well. Maybe these gyrations will work
>> > for
>> > you also.
>> >
>> > "Bob K" wrote:
>> >
>> >> I thought I had this DIFxApp thing under control, but I just upgraded
>> >> to
>> >> version 2.0 that was just released (I need the x64 support) and it
>> >> seems
>> >> to
>> >> have broken something. The install now aborts with the following log:
>> >>
>> >> DIFXAPP: InstallDriverPackages
>> >> DIFXAPP: 'CustomActionData' property 'DIFxApp Version' is 2.0.
>> >> DIFXAPP: 'CustomActionData' property 'UI Level' is 5.
>> >> DIFXAPP: 'CustomActionData' property 'componentId' is
>> >> {33C87C1F-F8A4-4834-9F3D-A9026D067632}.
>> >> DIFXAPP: 'CustomActionData' property 'componentPath' is C:\Program
>> >> Files\company driver\Kernel_MF\.
>> >> DIFXAPP: 'CustomActionData' property 'flags' is 0x10.
>> >> DIFXAPP: 'CustomActionData' property 'installState' is 2.
>> >> DIFXAPP: 'CustomActionData' property 'ProductName' is driver.
>> >> DIFXAPP: 'CustomActionData' property 'ManufacturerName' is FBN
>> >> Corporation.
>> >> DIFXAPP: INFO: ENTER: DriverPackageInstallW
>> >> DIFXAPP: INFO: Checking signature with catalog 'C:\Program
>> >> Files\company
>> >> driver\Kernel_MF\driver.cat' ...
>> >> DIFXAPP: ERROR: Signature verification failed while checking
>> >> integrity
>> >> of
>> >> driver package 'driver.inf' ('C:\Program Files\company
>> >> driver\Kernel_MF\driver.inf'). (Error code 0xE0000244.)
>> >> DIFXAPP: INFO: Successfully removed
>> >> {33C87C1F-F8A4-4834-9F3D-A9026D067632}
>> >> from reference list of driver store entry
>> >> DIFXAPP: INFO: RETURN: DriverPackageInstallW (0xE0000244)
>> >> DIFXAPP: ERROR encountered while installing driver package C:\Program
>> >> Files\company driver\Kernel_MF\driver.inf
>> >> DIFXAPP: InstallDriverPackages failed with error 0xE0000244
>> >> Action ended 7:46:31: InstallFinalize. Return value 3.
>> >>
>> >> The driver is signed. If I use chktrust on the .cat file it reports
>> >> that
>> >> it
>> >> is properly signed. Is there any other utility that would be more
>> >> appropriate to use?
>> >>
>> >> My only clue here is that maybe there is a file that is not included
>> >> in
>> >> the
>> >> signature that should be, or there is a file that is included that
>> >> shouldn't
>> >> be.
>> >>
>> >> How can I determine the problem?
>> >>
>> >> My driver consists of a single .sys file. I also include a stripped
>> >> .pdb
>> >> file. That means my .cdf file that creates the .cat file looks like:
>> >>
>> >> [CatalogHeader]
>> >> name=driver.cat
>> >> [CatalogFiles]
>> >> driversys=driver.sys
>> >> driverinf=driver.inf
>> >> driverpdb=driver.pdb
>> >>
>> >> I then sign the .cat file. The .inf file has an entry that points to
>> >> the
>> >> cat
>> >> file:
>> >>
>> >> [Version]
>> >> Signature = "$Windows NT$"
>> >> Class = "Replication"
>> >> Provider = %Company%
>> >> DriverVer = 01/01/05,0.0.0.0
>> >> CatalogFile = driver.cat
>> >> DriverPackageType=FileSystemMinifilter
>> >> DriverPackageDisplayName=%DriverServiceDesc%
>> >>
>> >>
>> >> Any help or any idea on what to look for would be greatly appreciated!
>> >>
>> >> This worked in DIFxApp 1.1!!!
>> >>
>> >> Thanks!
>> >>
>> >> Bob
>> >>
>> >>
>> >>
>>
>>
>
>