kxgchina
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2005-05-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1356回复:5

关于GUID的问题

楼主#
更多 发布于:2003-06-06 11:22
在源程序中使用的GUID和在inf文件中的ClassGUID有什么联系?
如果程序中有,而inf文件中没有写classguid这一项绘出现什么问题?而程序中没有GUID,但是inf文件中又写了ClassGUID这一项,会怎么样那?以上这两种情况是不是都是正确的,对编译以后的驱动,安装使用都没有问题啊???
xyyln
驱动老牛
驱动老牛
  • 注册日期2003-01-02
  • 最后登录2009-12-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-06 11:44
在源程序中使用的GUID和在inf文件中的ClassGUID有什么联系?
如果程序中有,而inf文件中没有写classguid这一项绘出现什么问
题?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
系统会说“指定的位置没有相关硬件的信息”
而程序中没有GUID,但是inf文件中又写了ClassGUID这一项,会怎么样那?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
程序可以不要GUID,只要AddDevice的时候设定了比如FILE_DISK,其实就等于告诉系统你是安装何种设备了。
以上这两种情况是不是都是正确的,对编译以后的驱动,安装使用都没有问题啊???
 
[img]http://www.jt99.com/zjbbs/UploadFile/2003113018513643830.gif[/img]
windyguy
驱动牛犊
驱动牛犊
  • 注册日期2003-05-07
  • 最后登录2004-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-06 19:21
Guid和ClassGuid是完全不同的两个概念。

驱动程序中注册的Guid只是为其它程序打开该驱动程序设备句柄提供一种方式,你完全可以不用GUID,直接写一个符号连接。

ClassGuid是.inf中Class这项对应的设备类的GUID,比如CDROM就是一个设备类,系统为CDROM这个设备类定义了一个GUID,你可以在.inf的ClassGuid项填入该GUID,这个GUID具体是什么可以去msdn查,一个设备类的GUID是唯一的。其实ClassGuid项只是系统在为新设备查找驱动时可以更快捷地找到对应驱动而加入的。

GUID是全局唯一标识符,因为它不会生成重复码,所以一般用来标识需要唯一确定的东西。
kxgchina
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2005-05-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-06 20:30
楼上的大侠,我就有些不太明白了,既然程序中的GUID与ClassGuid是不同的概念,那么为什么在程序中使用了GUID,在inf文件中没有ClassGuid就不可以那?
windyguy
驱动牛犊
驱动牛犊
  • 注册日期2003-05-07
  • 最后登录2004-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-06 21:09
在程序中使用了GUID,在inf文件中没有使用也是可以的。
Chris Cant的书里面wdm1的驱动inf就定义了一个Class=Unknown,不过ClassGuid没有给出,而驱动程序中是使用的guid。

其实我也是刚学没多久,如果有什么不对的地方,希望高手指正。
windyguy
驱动牛犊
驱动牛犊
  • 注册日期2003-05-07
  • 最后登录2004-05-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-06 21:18
If an INF specifies a Class it should also specify the corresponding system-defined GUID value for its ClassGUID entry. Specifying the matching GUID value for a device of any predefined device setup class can install the device and its drivers faster since this helps the system setup code to optimize its INF searching.

上面是msdn中的原文,就理解似乎不是neccessory,只是可以optimize inf searching...
游客

返回顶部