Avi.BH on Thu, 07 Jun 2018 07:34:57

I'm Trying to test and sign Win7 HCK Package that passed all certification tests (include INF test).
During the test sign submission process,  in the Preparation Phase, we recived  this error "Cannot have both [Manufacturer] and [DefaultInstall] sections"

I tried to find this Error number in

but there was no reference to it.

is there a change in inf file structure or policy ?   can you advise how to proceed ?



Doron Holan [MSFT] on Thu, 07 Jun 2018 14:01:43

It is a change in what is allowed. What type of inf is it? Why do you have both a pnp and not pnp install section?

Tim Roberts on Thu, 07 Jun 2018 21:18:11

Simple.  Remove the [DefaultInstall] section.  If you have a [Manufacturer] section, then you are a PnP device.  Such a device cannot be installed correctly using [DefaultInstall].

440gtx on Sat, 09 Jun 2018 01:12:37

Having a DefaultInstall section is indeed useful for class filter drivers since it allows them to be right click installed.

What a mess the tool chain has been for class filters. Let's review this mess over the years. First out of the blue a new release of CHKINF started demanding the INF file have a class/classguid section. It made no sense but everyone was forced to add a dummy one. Microsoft acknowledged this was their bad but never bothered fixing it instead deciding it was better to force the industry to butcher their INF files with both old and new driver developers all over the world stumbling over this again and again just to make the tool happy again. Then INF2CAT demanded the INF file have a Manufacturer section which again makes no sense for a class filter, but everyone was forced to include a dummy one just to make the tool happy. Now a new release of the tool chain out of the blue demands these INF files can no longer have a DefaultInstall section. And just why not? This forces precision, high quality inf files to be dumbed down to make the tool happy again further confusing and hampering class filter developers due to what can only be described as a series of careless decisions.

Tim Roberts on Mon, 11 Jun 2018 20:14:05

Well, such devices probably should have been using an install app all along.  The only reason a class filter can use [DefaultInstall] where a device filter cannot is the accidental fact that the class filter's registry location is known in advance.  It's not a PnP INF.

440gtx on Tue, 12 Jun 2018 00:13:35

Who said they aren't using an app to install all along? They are. The additional right click install method is valuable for development and external test. It is wrong to characterize this as a some sort of accident, but correctly characterized as one part of utilizing the platform to its fullest potential to yield the very finest quality device drivers with every feature and best practice fully leveraged. And just what is the reason for breaking a useful feature people have depended on for the last 20 years? The answer seems to be a very sad one. A long time ago a tool chain bug started requiring class filters to add a [Class] section which is a completely inapplicable section sitting in the file doing nothing and makes no sense. THIS is the section the tool chain should be complaining about today, NOT [DefaultInstall]. However, this tool chain bug was never fixed and a decade later has resulted in a series of cascading problems spreading like a cancer forcing developers to rewrite their code over and over again to appease a buggy tool chain with no end in sight. This is the mess we are in today.

Doron Holan [MSFT] on Tue, 12 Jun 2018 13:59:15

Class is used when installing filter manager file system filters with DefaultInstall

440gtx on Wed, 13 Jun 2018 00:20:54

While noteworthy note the discussion to this point has been about class filters, not file system filters.

Doron Holan [MSFT] on Wed, 13 Jun 2018 02:12:27

I am keenly aware what this thread is about. You misstated the lack of use of Class in a default install inf and I corrected that error.

440gtx on Thu, 14 Jun 2018 00:07:01

My assessment is in regards to class filters. I think it's all correct and pertinent information in that context.