Coinstaller & root device hw-id's

Hey folks,

Simple question, I’m just going slightly crosseyed here. I want to have
a co-installer install a root enumerated device which is a *singleton*.
That is, there’s only one of them on the system. I’m preferring this to
a previous approach (WDF control device) for a whole bunch of reasons.

Almost all figured out apart from 2 things:

SetupDiCreateDeviceInfo: I’m omitting the DICD_GENERATE_ID flag, because
I assume I want to specify the entire device instance ID.

eg: “ROOT\FOOCORP_SINGLETON\UNIQUE_INSTANCE”

SetupDiSetDeviceRegistryProperty: Adding the hardware ID to the devices
hardware ID property. This is where I go slightly crosseyed between
instance ID’s and hardware ID’s.

Can I add as a hardware ID the part of the instance ID that specifies
the instance, eg “UNIQUE_INSTANCE”. ? Or do I want to add the entire
instance ID? And anyways, why give a device zillions of hardware ID’s
… I thought that’s what compatible ID’s were for?

So essentially, can someone please help me disambiguate hardware ID’s
and instance ID’s in my mind, so I can decide the most sensible course
of action?

MH.

Have you looked at devcon and how it installs a root enumerated device?
Specifically, look at how it handles the install command line argument.
The HW ID will not contain the unique_instance part, only the root\ID
part. The device instance ID must be the same as the first HW ID
according to pnp’s rules. As to why there can be multiple HW IDs, that
is another discussion, but for root enumerated devices, a single hw ID
is fine.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Martin Harvey
Sent: Wednesday, May 16, 2007 4:24 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Coinstaller & root device hw-id’s

Hey folks,

Simple question, I’m just going slightly crosseyed here. I want to have
a co-installer install a root enumerated device which is a *singleton*.
That is, there’s only one of them on the system. I’m preferring this to
a previous approach (WDF control device) for a whole bunch of reasons.

Almost all figured out apart from 2 things:

SetupDiCreateDeviceInfo: I’m omitting the DICD_GENERATE_ID flag, because

I assume I want to specify the entire device instance ID.

eg: “ROOT\FOOCORP_SINGLETON\UNIQUE_INSTANCE”

SetupDiSetDeviceRegistryProperty: Adding the hardware ID to the devices
hardware ID property. This is where I go slightly crosseyed between
instance ID’s and hardware ID’s.

Can I add as a hardware ID the part of the instance ID that specifies
the instance, eg “UNIQUE_INSTANCE”. ? Or do I want to add the entire
instance ID? And anyways, why give a device zillions of hardware ID’s
… I thought that’s what compatible ID’s were for?

So essentially, can someone please help me disambiguate hardware ID’s
and instance ID’s in my mind, so I can decide the most sensible course
of action?

MH.


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

I would suggest putting a single HWID and no compatible IDs. Multipel hardware IDs are useful when there’s a spectrum of bus identification ranging from “it’s a USB device from this vendor” to “it’s this vendor, model, firmware revision, built by Fred”

You have a singleton device and want a single driver that you control loaded on it. You shouldn’t need more than one ID.

-p

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Martin Harvey
Sent: Wednesday, May 16, 2007 4:24 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Coinstaller & root device hw-id’s

Hey folks,

Simple question, I’m just going slightly crosseyed here. I want to have
a co-installer install a root enumerated device which is a *singleton*.
That is, there’s only one of them on the system. I’m preferring this to
a previous approach (WDF control device) for a whole bunch of reasons.

Almost all figured out apart from 2 things:

SetupDiCreateDeviceInfo: I’m omitting the DICD_GENERATE_ID flag, because
I assume I want to specify the entire device instance ID.

eg: “ROOT\FOOCORP_SINGLETON\UNIQUE_INSTANCE”

SetupDiSetDeviceRegistryProperty: Adding the hardware ID to the devices
hardware ID property. This is where I go slightly crosseyed between
instance ID’s and hardware ID’s.

Can I add as a hardware ID the part of the instance ID that specifies
the instance, eg “UNIQUE_INSTANCE”. ? Or do I want to add the entire
instance ID? And anyways, why give a device zillions of hardware ID’s
… I thought that’s what compatible ID’s were for?

So essentially, can someone please help me disambiguate hardware ID’s
and instance ID’s in my mind, so I can decide the most sensible course
of action?

MH.


Questions? First check the Kernel Driver FAQ at http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer