SetupDiGetDeviceRegistryPropertyW 函数 (setupapi.h)
SetupDiGetDeviceRegistryProperty 函数检索指定的即插即用设备属性。
语法
WINSETUPAPI BOOL SetupDiGetDeviceRegistryPropertyW(
[in] HDEVINFO DeviceInfoSet,
[in] PSP_DEVINFO_DATA DeviceInfoData,
[in] DWORD Property,
[out, optional] PDWORD PropertyRegDataType,
[out, optional] PBYTE PropertyBuffer,
[in] DWORD PropertyBufferSize,
[out, optional] PDWORD RequiredSize
);
参数
[in] DeviceInfoSet
设备信息集的句柄,其中包含表示要为其检索即插即用属性的设备的设备信息元素。
[in] DeviceInfoData
指向 SP_DEVINFO_DATA 结构的指针,该结构指定 DeviceInfoSet 中的设备信息元素。
[in] Property
指定要检索的属性的下列值之一:
SPDRP_ADDRESS
函数检索设备的地址。
SPDRP_BUSNUMBER
函数检索设备的总线编号。
SPDRP_BUSTYPEGUID
函数检索设备的总线类型的 GUID。
SPDRP_CAPABILITIES
函数检索 DWORD 中以下CM_DEVCAP_Xxx 标志的按位 OR。 这些标志表示的设备功能对应于 由 DEVICE_CAPABILITIES 结构的成员表示的设备功能。 CM_DEVCAP_Xxx常量在 Cfgmgr32.h 中定义。
CM_DEVCAP_Xxx标志 | 相应的DEVICE_CAPABILITIES结构成员 |
---|---|
CM_DEVCAP_LOCKSUPPORTED | LockSupported |
CM_DEVCAP_EJECTSUPPORTED | 弹出支持 |
CM_DEVCAP_REMOVABLE | 移动 |
CM_DEVCAP_DOCKDEVICE | DockDevice |
CM_DEVCAP_UNIQUEID | UniqueID |
CM_DEVCAP_SILENTINSTALL | SilentInstall |
CM_DEVCAP_RAWDEVICEOK | RawDeviceOK |
CM_DEVCAP_SURPRISEREMOVALOK | SurpriseRemovalOK |
CM_DEVCAP_HARDWAREDISABLED | HardwareDisabled |
CM_DEVCAP_NONDYNAMIC | 非动态 |
SPDRP_CHARACTERISTICS
函数检索 DWORD 中设备特征标志的按位 OR。 有关 Wdm.h 和 Ntddk.h 中定义的这些标志的说明,请参阅 IoCreateDevice 函数的 DeviceCharacteristics 参数。
SPDRP_CLASS
函数检索包含 设备的设备设置类 的REG_SZ字符串。
SPDRP_CLASSGUID
函数检索包含 GUID 的REG_SZ字符串,该 GUID 表示设备的设备设置类。
SPDRP_COMPATIBLEIDS
函数检索包含设备兼容 ID 列表的REG_MULTI_SZ字符串。 有关兼容 ID 的信息,请参阅 设备标识字符串。
SPDRP_CONFIGFLAGS
函数检索 DWORD 值中设备配置标志的按位 OR。 配置标志由 Regstr.h 中定义的 CONFIGFLAG_Xxx 位掩码表示。
SPDRP_DEVICE_POWER_DATA
(Windows XP 及更高版本) 函数检索包含设备电源管理信息的 CM_POWER_DATA 结构。
SPDRP_DEVICEDESC
函数检索包含设备说明的REG_SZ字符串。
SPDRP_DEVTYPE
函数检索表示设备类型的 DWORD 值。 有关详细信息,请参阅 指定设备类型。
SPDRP_DRIVER
函数检索一个字符串,该字符串标识设备的 软件密钥 (有时称为 驱动程序密钥) 。 有关驱动程序键的详细信息,请参阅 注册表树和设备和驱动程序的密钥。
SPDRP_ENUMERATOR_NAME
函数检索包含设备 枚举器名称的REG_SZ字符串。
SPDRP_EXCLUSIVE
函数检索一个 DWORD 值,该值指示用户是否可以独占使用设备。 如果允许独占使用,则返回的值为 1,否则返回值为零。 有关详细信息,请参阅 IoCreateDevice。
SPDRP_FRIENDLYNAME
函数检索包含设备的友好名称的REG_SZ字符串。
SPDRP_HARDWAREID
函数检索包含设备硬件 ID 列表的REG_MULTI_SZ字符串。 有关硬件 ID 的信息,请参阅 设备标识字符串。
SPDRP_INSTALL_STATE
(Windows XP 及更高版本) 函数检索指示设备安装状态的 DWORD 值。 安装状态由 Cfgmgr32.h 中定义的 CM_INSTALL_STATE_Xxx 值之一表示。 CM_INSTALL_STATE_Xxx 值对应于 DEVICE_INSTALL_STATE 枚举值。
SPDRP_LEGACYBUSTYPE
函数检索设备的旧式总线类型作为 Wdm.h 和 Ntddk.h) 中定义的INTERFACE_TYPE值 (。
SPDRP_LOCATION_INFORMATION
函数检索包含设备硬件位置的REG_SZ字符串。
SPDRP_LOCATION_PATHS
(Windows Server 2003 及更高版本) 函数检索表示设备在设备树中的位置的REG_MULTI_SZ字符串。
SPDRP_LOWERFILTERS
函数检索包含设备低筛选器驱动程序名称的REG_MULTI_SZ字符串。
SPDRP_MFG
函数检索包含设备制造商名称的REG_SZ字符串。
SPDRP_PHYSICAL_DEVICE_OBJECT_NAME
函数检索包含与设备的 PDO 关联的名称的REG_SZ字符串。 有关详细信息,请参阅 IoCreateDevice。
SPDRP_REMOVAL_POLICY
(Windows XP 及更高版本) 函数以包含 Cfgmgr32.h 中定义的 CM_REMOVAL_POLICY_Xxx 值之一的 DWORD 的形式检索设备的当前删除策略。
SPDRP_REMOVAL_POLICY_HW_DEFAULT
(Windows XP 及更高版本) 函数检索设备的硬件指定默认删除策略作为包含 Cfgmgr32.h 中定义的 CM_REMOVAL_POLICY_Xxx 值之一的 DWORD。
SPDRP_REMOVAL_POLICY_OVERRIDE
(Windows XP 及更高版本) 函数检索设备的替代删除策略 ((如果它存在于注册表中) ),作为包含 Cfgmgr32.h 中定义的 CM_REMOVAL_POLICY_Xxx 值之一的 DWORD。
SPDRP_SECURITY
函数检索设备的 SECURITY_DESCRIPTOR 结构。
SPDRP_SECURITY_SDS
函数检索包含设备安全描述符的REG_SZ字符串。 有关安全描述符字符串的信息,请参阅 安全描述符定义语言 (Windows) 。 有关安全描述符字符串的格式的信息,请参阅安全描述符定义语言 (Windows) 。
SPDRP_SERVICE
函数检索包含设备服务名称的REG_SZ字符串。
SPDRP_UI_NUMBER
函数检索设置为设备DEVICE_CAPABILITIES结构的 UINumber 成员的值的 DWORD 值。
SPDRP_UI_NUMBER_DESC_FORMAT
函数检索用于显示 UINumber 值的格式字符串 (REG_SZ) 。
SPDRP_UPPERFILTERS
函数检索包含设备上层筛选器驱动程序名称的REG_MULTI_SZ字符串。
[out, optional] PropertyRegDataType
指向接收所检索属性的数据类型的变量的指针。 这是标准注册表数据类型之一。 此参数是可选的,可以为 NULL。
[out, optional] PropertyBuffer
指向接收正在检索的属性的缓冲区的指针。 如果此参数设置为 NULL,并且 PropertyBufferSize 也设置为零,则该函数将返回 RequiredSize 中缓冲区的所需大小。
[in] PropertyBufferSize
PropertyBuffer 缓冲区的大小(以字节为单位)。
[out, optional] RequiredSize
指向类型为 DWORD 的变量的指针,该变量接收保存所请求属性的数据所需的 PropertyBuffer 缓冲区的所需大小(以字节为单位)。 此参数是可选的,可以为 NULL。
返回值
如果调用成功,SetupDiGetDeviceRegistryProperty 将返回 TRUE。 否则,它将返回 FALSE ,并且可以通过调用 GetLastError 来检索记录的错误。 如果设备不存在请求的属性或属性数据无效,SetupDiGetDeviceRegistryProperty 将返回ERROR_INVALID_DATA错误代码。
注解
注意
setupapi.h 标头将 SetupDiGetDeviceRegistryProperty 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Microsoft Windows 2000 及更高版本的 Windows 中可用。 |
目标平台 | 桌面对于通用,请调用 CM_Get_DevNode_Registry_Property |
标头 | setupapi.h (包括 Setupapi.h) |
Library | Setupapi.lib |
另请参阅
SetupDiGetClassRegistryProperty