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 是显示模式的总数。 然后,客户端驱动程序可以分配 ModeCountD3DKMT_DISPLAYMODE 结构的数组,将 pModeList 设置为指向此数组,并再次调用 D3DKMTGetDisplayModeList 以检索显示模式列表。

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

要求

要求 价值
最低支持的客户端 Windows Vista
目标平台 普遍
标头 d3dkmthk.h (包括 D3dkmthk.h)
Gdi32.lib
DLL Gdi32.dll

另请参阅

D3DKMT_DISPLAYMODE

D3DKMT_GETDISPLAYMODELIST