GetDisplayConfigBufferSizes 函数 (winuser.h)

GetDisplayConfigBufferSizes 函数检索调用 QueryDisplayConfig 函数所需的缓冲区大小。

语法

LONG GetDisplayConfigBufferSizes(
  [in]  UINT32 flags,
  [out] UINT32 *numPathArrayElements,
  [out] UINT32 *numModeInfoArrayElements
);

参数

[in] flags

要检索的信息的类型。 Flags 参数的值必须是下列值之一。

QDC_ALL_PATHS

调用方请求表大小以保存所有可能的路径组合。

QDC_ONLY_ACTIVE_PATHS

调用方请求表大小以仅保留活动路径。

QDC_DATABASE_CURRENT

调用方请求表大小,以保存当前连接的监视器的持久性数据库中定义的活动路径。

[out] numPathArrayElements

指向接收路径信息表中元素数的变量的指针。 然后,对 QueryDisplayConfig 函数的后续调用将使用 pNumPathArrayElements 参数值。 此参数不能为 NULL

[out] numModeInfoArrayElements

指向接收模式信息表中元素数的变量的指针。 然后,对 QueryDisplayConfig 函数的后续调用将使用 pNumModeInfoArrayElements 参数值。 此参数不能为 NULL

返回值

该函数返回以下返回代码之一。

返回代码 说明
ERROR_SUCCESS
函数成功。
ERROR_INVALID_PARAMETER
指定的参数和标志的组合无效。
ERROR_NOT_SUPPORTED
系统未运行根据 Windows 显示驱动程序模型 (WDDM) 编写的图形驱动程序。 仅在运行 WDDM 驱动程序的系统上支持 函数。
ERROR_ACCESS_DENIED
调用方无权访问控制台会话。 如果调用进程无权访问当前桌面或在远程会话上运行,则会发生此错误。
ERROR_GEN_FAILURE
发生了未指定的错误。

注解

给定当前的显示路径配置和请求的标志, GetDisplayConfigBufferSizes 返回存储信息所需的路径和模式表的大小。 GetDisplayConfigBufferSizes 可以返回的值略大于实际所需的值,因为它确定所有源路径和目标路径都有效;而驱动程序可能会对可能的组合施加一些限制。

由于 GetDisplayConfigBufferSizes 只能确定该时刻所需的数组大小,因此在调用 GetDisplayConfigBufferSizesQueryDisplayConfig 之间,系统配置可能已更改,并且提供的数组大小不再足以存储新路径数据。

如果调用方知道必须启用其他源和目标,则调用方可以分配比 GetDisplayConfigBufferSizes 返回的更大的模式信息数组,以便它有空间在调用 QueryDisplayConfig 之后和调用 SetDisplayConfig 之前添加其他源和目标模式。

示例

有关 GetDisplayConfigBufferSizes 的示例,请参阅 QueryDisplayConfig

要求

要求
最低受支持的客户端 在 Windows Vista 和更高版本的 Windows 操作系统中可用。
目标平台 通用
标头 winuser.h (包括 Windows.h)
Library User32.lib;Windows 10 上的 OneCoreUAP.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-sysparams-ext-l1-1-1 (在 Windows 10 版本 10.0.14393 中引入)

另请参阅

QueryDisplayConfig

SetDisplayConfig