There are three separate GUIDs that you need to think about.
-
The “ClassGuid” in the INF. This determines which “setup class” your
device is in. Setup classes determine which group your device shows up
under in the device manager, and can also define “class filters” -
filters which are loaded on every device stack in that class.
-
The “DriverCLSID” in the INF & in your driver. This is the UUID
passed to your driver’s DllGetClassObject export to create your driver
class object. These have to match between the INF and your driver, but
have nothing to do with anything outside of that.
-
The GUID that you assign to your device interfaces when you create
them. This represents the type of the device interface which roughly
corresponds to the set of read/write/ioctl operations that the device
supports. You either select the interface that corresponds to the set
of pre-defined operations you’re implementing (disk interface, cdrom
interface, hid interface, etc…) or you make up a new GUID if you’re
making up a new interface.
To convert the Fx2 driver to something custom you only really need to
change the last GUID. You should probably change the second (ideally
each driver will have a unique CLSID but it’s not required) and you’ll
eventually want to change the first so end users see your device in an
appropriate group instead of in “Sample”.
-p
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@n-trig.com
Sent: Thursday, January 11, 2007 8:31 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] GUIDs of UMDF sample
Hi,
I have installed my UMDF driver, which is basically the FX2 driver with
minor changes and a new vendor ID and GUID.
When I use SetupDiEnumDeviceInterfaces in order to get my device path,
as used in the usb exe folder of the samples,
I get Error 259, which is “No more data is available”.
I assume that my GUID is incorrect.
I have checked the inf file, and it has two GUIDs:
The first is:
[Version]
Signature=“$Windows NT$”
Class=Sample
ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171}
and the second is:
[WUDFOsrUsbFx2_Install]
UmdfLibraryVersion=1.5.0
DriverCLSID=“{7bf5cb94-b686-4721-955e-878e48933a2c}”
I have changed the second one to fit my device’s GUID, in the inf and in
the src code of the driver.
But still, when I check the device manager for properties of this
device, I find that its “Device class guid” is actually the first one
stated above, and not the second as I thought.
Changing it to the first one failed, the “Device class guid” in the
device manager did change, but the device failed to start.
What do each of these GUIDs represent? Which one should be altered in
the src code of the driver, and to which one should I access while using
SetupDiEnumDeviceInterfaces in the code of the application?
Which should remain from the skeleton (in the inf and driver src code)
and which should be altered?
Please help make some sense of this,
Thanks,
Gadi
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