D3DKMTGetDisplayModeList 函数 (d3dkmthk.h)
D3DKMTGetDisplayModeList 函数检索可用显示模式的列表,包括采用扩展格式的模式。
语法
NTSTATUS D3DKMTGetDisplayModeList(
D3DKMT_GETDISPLAYMODELIST *unnamedParam1
);
参数
unnamedParam1
[in/out] pData 是指向包含此函数参数的 D3DKMT_GETDISPLAYMODELIST 结构的指针。
返回值
D3DKMTGetDisplayModeList 返回 NTSTATUS 值,例如以下值之一。
返回代码 | 说明 |
---|---|
STATUS_SUCCESS | 已成功检索可用显示模式的列表,或者如果 pData- |
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 |