SetupDiGetClassDevPropertySheetsA 函数 (setupapi.h)

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

语法

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

参数

[in] DeviceInfoSet

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

[in, optional] DeviceInfoData

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

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

[in] PropertySheetHeader

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

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

[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)
Library Setupapi.lib

另请参阅

SP_DEVINFO_DATA