DXGKDDI_VIDPN_ASSIGNSOURCEMODESET回调函数 (d3dkmddi.h)
pfnAssignSourceModeSet 函数将源模式集分配给指定 VidPN 中的特定源。
语法
DXGKDDI_VIDPN_ASSIGNSOURCEMODESET DxgkddiVidpnAssignsourcemodeset;
NTSTATUS DxgkddiVidpnAssignsourcemodeset(
[in] IN_D3DKMDT_HVIDPN hVidPn,
[in] IN_CONST_D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId,
[in] IN_CONST_D3DKMDT_HVIDPNSOURCEMODESET hVidPnSourceModeSet
)
{...}
参数
[in] hVidPn
VidPN 对象的句柄。 VidPN 管理器以前通过调用 DxgkDdiEnumVidPnCofuncModality 或 DxgkDdiRecommendFunctionalVidPn 向显示微型端口驱动程序提供了此句柄。
[in] VidPnSourceId
一个整数,标识与 VidPN 对象关联的视频呈现源之一。
[in] hVidPnSourceModeSet
要分配给 由 VidPnSourceId 标识的源的源模式集对象的句柄。 显示微型端口驱动程序以前通过调用 pfnCreateNewSourceModeSet 获取此句柄。
返回值
pfnAssignSourceModeSet 函数返回以下值之一:
返回代码 | 说明 |
---|---|
STATUS_SUCCESS | 函数成功。 |
STATUS_GRAPHICS_INVALID_VIDPN | hVidPn 中提供的句柄无效。 |
STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE | VidPnSourceId 中提供的标识符无效。 |
STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET | hVidPnSourceModeSet 中提供的句柄无效。 |
STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET | 尝试分配的源模式集不包含已固定在源上的模式。 |
注解
VidPN 源标识符由操作系统分配。 由显示微型端口驱动程序实现的 DxgkDdiStartDevice 返回显示适配器支持的 N 个视频呈现源的数量。 然后,操作系统分配标识符 0、1、2...N - 1.
如果通过调用 pfnCreateNewSourceModeSet 获取句柄,然后将该句柄传递给 pfnAssignSourceModeSet,则无需通过调用 pfnReleaseSourceModeSet 释放句柄。
如果通过调用 pfnCreateNewSourceModeSet 获取句柄,然后决定不将新的源模式集分配给源,则必须通过调用 pfnReleaseSourceModeSet 释放新获取的句柄。
如果 pfnAssignSourceModeSet 失败并出现无效输入参数 (,) STATUS_GRAPHICS_INVALID_VIDPN、STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE或STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET错误代码失败,则 pfnAssignSourceModeSet 不会释放源模式集对象,因为指定的参数不足以让操作系统确定要释放的模式集对象。 此类无效参数情况表示驱动程序中存在严重的编码错误。 可以通过指定正确的 VidPN 句柄、源标识符或 VidPN 源模式集句柄来修复此错误。
如果 pfnAssignSourceModeSet 由于以下原因之一而失败,pfnAssignSourceModeSet 将在成功验证所有输入参数后释放源模式集对象:
- 源模式集为空。
- 源模式集不包含固定在上一个模式集中的模式(如果有)。
- 未为 VidPnSourceId 标识的源创建源模式集。
D3DKMDT_HVIDPN和D3DKMDT_HVIDPNSOURCEMODESET数据类型在 D3dkmdt.h 中定义。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
目标平台 | 桌面 |
标头 | d3dkmddi.h (包括 D3dkmddi.h) |
IRQL | PASSIVE_LEVEL |