访问设备驱动程序属性
在 Windows Vista 和更高版本的 Windows 中, 统一设备属性模型 包括用于描述设备驱动程序特征的设备驱动程序属性。 统一设备属性模型使用 属性键 来表示这些属性。
Windows Server 2003、Windows XP 和 Windows 2000 也支持其中大多数设备驱动程序属性。 但是,这些早期版本的 Windows 不支持统一设备属性模型的属性键。 相反,这些版本的 Windows 使用以下机制来表示和访问相应的属性信息:
为了保持与这些早期版本的 Windows 的兼容性,Windows Vista 和更高版本还支持这两种方法来访问有关设备接口的信息。 但是,你应该使用属性键在 Windows Vista 和更高版本上访问这些属性。 有关如何使用属性键访问 Windows Vista 及更高版本上的设备驱动程序属性的信息,请参阅 访问 Windows Vista 和更高版本 (设备实例属性) 。
访问具有相应注册表项值的设备驱动程序属性
若要访问 Windows Server 2003、Windows XP 和 Windows 2000 上的设备驱动程序属性,请执行以下步骤:
通过使用 ulFlags CM_REGISTRY_SOFTWARE 或 SetupDiOpenDevRegKey(范围为 DICS_FLAG_GLOBAL 且 KeyType 为 DIREG_DRV)调用 CM_Open_DevNode_Key 来检索设备实例的软件密钥句柄。
在调用 RegQueryValueEx 或 RegSetValueEx 时提供句柄,以检索或设置与设备实例驱动程序属性对应的注册表项值。
调用 RegCloseKey 函数以在不再需要访问密钥后关闭软件注册表项。
设备软件密钥中统一设备属性模型属性及其相应注册表值的表是:
统一属性模型属性 | (regstr.h) 中定义的软件密钥注册表值名称 |
---|---|
DEVPKEY_Device_DriverDate | REGSTR_VAL_DRIVERDATEDATA |
DEVPKEY_Device_DriverVersion | REGSTR_VAL_DRIVERVERSION |
DEVPKEY_Device_DriverDesc | REGSTR_VAL_DRVDESC |
DEVPKEY_Device_DriverInfPath | REGSTR_VAL_INFPATH |
DEVPKEY_Device_DriverInfSection | REGSTR_VAL_INFSECTION |
DEVPKEY_Device_DriverInfSectionExt | REGSTR_VAL_INFSECTIONEXT |
DEVPKEY_Device_DriverProvider | REGSTR_VAL_PROVIDER_NAME |
使用 SetupDiGetDriverInstallParams 检索驱动程序排名
在 Windows Server 2003、Windows XP 和 Windows 2000 上,可以通过调用 SetupDiGetDriverInstallParams 检索当前为设备安装的驱动程序的排名。 SetupDiGetDriverInstallParams 检索指向输出参数 DriverInstallParams 中驱动程序的SP_DRVINSTALL_PARAMS结构的指针。 检索到的 SP_DRVINSTALL_PARAMS 结构的 Rank 成员包含驱动程序排名。