SetupDiGetClassDevPropertySheetsW 函数 (setupapi.h)

SetupDiGetClassDevPropertySheets 函数检索设备信息元素的属性表或设备信息集 设备安装类的属性表的句柄。

语法

WINSETUPAPI BOOL SetupDiGetClassDevPropertySheetsW(
  [in]            HDEVINFO           DeviceInfoSet,
  [in, optional]  PSP_DEVINFO_DATA   DeviceInfoData,
  [in]            LPPROPSHEETHEADERW PropertySheetHeader,
  [in]            DWORD              PropertySheetHeaderPageListSize,
  [out, optional] PDWORD             RequiredSize,
  [in]            DWORD              PropertySheetType
);

参数

[in] DeviceInfoSet

设备信息的句柄集 返回属性表句柄。 如果 DeviceInfoData 未在设备信息集中指定设备信息元素,则设备信息集必须具有关联的设备设置类。

[in, optional] DeviceInfoData

指向 SP_DEVINFO_DATA 结构的指针,该结构指定 DeviceInfoSet 中的设备信息元素。

此参数是可选的,可以 NULL。 如果指定此参数,SetupDiGetClassDevPropertySheets 检索与指定设备关联的属性表句柄。 如果此参数 NULLSetupDiGetClassDevPropertySheets 检索与 DeviceInfoSet中指定的设备安装类关联的属性表句柄。

[in] PropertySheetHeader

指向 PROPERTYSHEETHEADER 结构的指针。 有关与此结构关联的属性表句柄数组的信息,请参阅 备注 部分。

有关此结构和属性表的更多文档,请参阅 windows SDK Microsoft。

[in] PropertySheetHeaderPageListSize

调用方提供的属性表句柄数组可以容纳的最大句柄数。

[out, optional] RequiredSize

指向类型为 DWORD 的变量的指针,该变量接收与指定设备信息元素或指定设备信息集的设备安装类关联的属性表数。 指针是可选的,可以 NULL

[in] PropertySheetType

一个标志,指示以下类型的属性表之一。

属性表类型 意义
DIGCDP_FLAG_ADVANCED 高级属性表。
DIGCDP_FLAG_BASIC 基本属性表。 仅在 Microsoft Windows 95 和 Windows 98 中受支持。 请勿在 Windows 2000 及更高版本的 Windows 中使用。
DIGCDP_FLAG_REMOTE_ADVANCED 远程计算机上的高级属性表。

返回值

如果成功,该函数将返回 true 。 否则,该函数返回 FALSE。 调用 GetLastError 以获取错误代码。

言论

PROPERTYSHEETHEADER 结构包含两个成员,这些成员与函数用来返回属性表句柄的调用方提供的数组相关联。 phpages 成员是指向属性表句柄调用方提供的数组的指针,nPages 成员的输入值指定句柄数组中包含的句柄数。 该函数将属性表句柄添加到句柄数组,其数组索引是 nPages的输入值。 该函数按连续顺序向数组添加句柄,直到数组已满或所有请求的属性表页的句柄已添加到数组。 函数可返回的最大属性表句柄数等于 (PropertySheetHeaderPageListSize - (nPages的输入值))。

如果句柄数组足够大,可以容纳所有请求的属性表页的句柄,则函数:

  • 将句柄添加到句柄数组。
  • nPages 设置为数组中的句柄总数。
  • RequiredSize 设置为返回的句柄数。
  • 返回 TRUE
如果句柄数组不够大,无法容纳所有指定属性表页的句柄,则函数:
  • 添加数组可以容纳的任意数量的句柄。
  • nPages 设置为 PropertySheetHeaderPageListSize
  • 将 requiredSize 设置为请求的属性表页总数。 函数未返回的句柄数等于(RequiredSize - PropertySheetHeaderPageListSize - (nPages的输入值))。
  • 将错误代码设置为ERROR_INSUFFICIENT_BUFFER。
  • 返回 FALSE

注意

setupapi.h 标头将 SetupDiGetClassDevPropertySheets 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Microsoft Windows 2000 及更高版本的 Windows 中可用。
目标平台 桌面
标头 setupapi.h (包括 Setupapi.h)
Setupapi.lib

另请参阅

SP_DEVINFO_DATA