D3DKMTGetDisplayModeList 函数 (d3dkmthk.h)

D3DKMTGetDisplayModeList 函数检索可用显示模式的列表,包括具有扩展格式的模式。

语法

NTSTATUS D3DKMTGetDisplayModeList(
  D3DKMT_GETDISPLAYMODELIST *unnamedParam1
);

参数

unnamedParam1

[in/out] pData 是指向包含此函数参数 的D3DKMT_GETDISPLAYMODELIST 结构的指针。

返回值

D3DKMTGetDisplayModeList 返回 NTSTATUS 值,如下所示之一。

返回代码 说明
STATUS_SUCCESS 已成功检索可用显示模式的列表,或者如果 pData-pModeList 为 NULL 且 pData-ModeCount> 在输入时为零,则 pData-ModeCount>> 中返回显示模式的数目。
STATUS_DEVICE_REMOVED 图形适配器已停止。
STATUS_BUFFER_TOO_SMALL 客户端驱动程序在 pData-pModeList> 中提供的缓冲区不够大,无法包含请求的显示模式列表。
STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET 没有视频呈现目标可用于 pData-VidPnSourceId> 标识的视频演示源。 因此,此源没有可用的显示模式。
STATUS_INVALID_PARAMETER** 参数已验证并确定为不正确。

注解

若要获取图形适配器 (pData-hAdapter) 上指定 VidPn 源 (pData-VidPnSourceId>>) 的显示模式数,客户端驱动程序可以调用 D3DKMTGetDisplayModeList并将 pData-pModeList> 设置为 NULL,pData-ModeCount > 设置为 0。 如果此调用返回STATUS_SUCCESS,则返回的 pData-ModeCount> 是显示模式的总数。 然后,客户端驱动程序可以分配 ModeCount的数组D3DKMT_DISPLAYMODE 结构,将 pModeList 设置为指向此数组,然后再次调用 D3DKMTGetDisplayModeList 以检索显示模式列表。

指定 VidPn 源上的显示属性可以在这两个调用之间更改,从而导致显示模式列表发生更改。 在这种情况下,如果调用方提供的 D3DKMT_DISPLAYMODE 数组不够大,无法容纳新的显示模式列表,则此函数将返回STATUS_BUFFER_TOO_SMALL,并在返回的 ModeCount 中返回新显示模式的数目。 调用方可以释放上一 个D3DKMT_DISPLAYMODE 数组,根据返回的新数字分配新的 D3DKMT_DISPLAYMODE 数组,并使用新数字和新 D3DKMT_DISPLAYMODE 数组再次调用此函数,以获取新的显示模式列表。

要求

要求
最低受支持的客户端 Windows Vista
目标平台 通用
标头 d3dkmthk.h (包括 D3dkmthk.h)
Library Gdi32.lib
DLL Gdi32.dll

另请参阅

D3DKMT_DISPLAYMODE

D3DKMT_GETDISPLAYMODELIST