阅读:5696回复:2
SetupDiEnumDeviceInterfaces 之GUID问题
小弟初学USB驱动,现在遇到一个问题想请问个位大侠
问题描述如下: 手上目前有两块不同的开发板(简称板1,板2),两块板均成熟可用USB经验证亦无问题。PC端的驱动和应用程序为网上下载之DNW V0.5源码,在测试的时候发现在源代码中的如下函数: SetupDiEnumDeviceInterfaces (...,pGuid,.) 使用其查找设备的时候,使用原GUID {8E120C45-4968-4188-BA19-9A82361C8FA8}的时候可以成功找到设备,但是其驱动在注册表里面注册的Class GUID却是{36FC9E60-C465-11CF-8056-444553540000}。将GUID换成{36FC9E60-C465-11CF-8056-444553540000}后不能找到设备。请问源码中的GUID和注册表中的Class GUID 有何区别?如果SetupDiEnumDeviceInterfaces 参数之GUID非注册表之ClassGUID,它又从何得来?忘高手指点一二,不胜感激。 |
|
|
沙发#
发布于:2010-03-21 16:56
Class GUID指的是设备类的GUID,象USB设备的驱动一般都归于USB设备类之下,这在设备管理器中可以看到。
而SetupDiEnumDeviceInterfaces中使用的则是设备驱动中通过IoRegisterDeviceInterface调用来登记的设备接口类。然后,应用程序可以通过这个接口类来查找和打开设备。 这两者之间其实没有什么关系。 |
|
板凳#
发布于:2010-03-22 13:22
非常感谢jally76的帮助
|
|
|