设置类与接口类
区分两种类型的设备类非常重要:设备接口类和设备设置类。 这两者很容易混淆,因为在用户模式代码中,同一组 设备安装函数 和相同的数据结构集 (设备信息集) 用于这两个类。 此外,设备通常同时属于一个安装程序类和多个接口类。 不过,这两种类型的类具有不同的用途,利用注册表中的不同区域,并依赖于一组不同的头文件来定义类 GUID。
设备安装类 提供了一种机制,用于对以相同方式安装和配置的设备进行分组。 例如,所有 CD-ROM 驱动器都属于 CDROM 设置类。
设备接口类 提供了一种机制,用于根据共享特征或功能对设备进行分组。 驱动程序和用户应用程序可以注册以接收属于特定接口类的任何设备的到达或删除通知,而不是跟踪单个设备在系统中的状态。
Windows 设备安装类在系统文件 Devguid.h 中定义。 此文件为安装类定义一系列 GUID。 但是, Devguid.h 中表示的设备安装类不得与设备 接口 类混淆。 Devguid.h 文件仅包含安装类的 GUID。
接口类的定义不在单个文件中提供。 设备接口类始终在独占属于特定设备类的头文件中定义。 例如, Ntddmou.h 包含 GUID_DEVINTERFACE_MOUSE 的定义,即表示鼠标接口类的 GUID; Ntddpar.h 定义并行设备的接口类 GUID; Ntddpcm.h 定义 PCMCIA 设备的标准接口类 GUID; Ntddstor.h 定义存储设备的接口类 GUID 等。
头文件中特定于设备接口类的 GUID 应用于注册设备接口实例的到达通知。 如果驱动程序使用安装类 GUID 而不是接口类 GUID 注册通知,则在接口到达时不会通知它。
定义新的安装类或接口类时, 请勿使用单个 GUID 来标识安装程序类和接口类。
有关 GUID 的详细信息,请参阅 在驱动程序中使用 GUID。