SetupDiGetDeviceRegistryPropertyA 函数 (setupapi.h)

SetupDiGetDeviceRegistryProperty 函数检索指定的即插即用设备属性。

语法

WINSETUPAPI BOOL SetupDiGetDeviceRegistryPropertyA(
  [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.hNtddk.h 中定义的这些标志的说明,请参阅 IoCreateDevice 函数的 DeviceCharacteristics 参数。

SPDRP_CLASS

函数检索包含 设备的设备设置类 的REG_SZ字符串。

SPDRP_CLASSGUID

函数检索一个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.hNtddk.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

另请参阅

IoGetDeviceProperty

SetupDiGetClassRegistryProperty

SetupDiSetClassRegistryProperty

SetupDiSetDeviceRegistryProperty