DXGKDDI_VIDPN_ASSIGNTARGETMODESET回调函数 (d3dkmddi.h)

pfnAssignTargetModeSet 函数将目标模式集分配给指定 VidPN 中的特定目标。

语法

DXGKDDI_VIDPN_ASSIGNTARGETMODESET DxgkddiVidpnAssigntargetmodeset;

NTSTATUS DxgkddiVidpnAssigntargetmodeset(
  [in] IN_D3DKMDT_HVIDPN hVidPn,
  [in] IN_CONST_D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  [in] IN_CONST_D3DKMDT_HVIDPNTARGETMODESET hVidPnTargetModeSet
)
{...}

参数

[in] hVidPn

VidPN 对象的句柄。 VidPN 管理器以前通过调用 DxgkDdiEnumVidPnCofuncModalityDxgkDdiRecommendFunctionalVidPn 向显示微型端口驱动程序提供了此句柄。

[in] VidPnTargetId

一个整数,标识与 VidPN 对象关联的视频存在目标之一。

[in] hVidPnTargetModeSet

要分配给 VidPnTargetId 标识的目标的目标模式集对象的句柄。 显示微型端口驱动程序之前通过调用 pfnCreateNewTargetModeSet 获取此句柄。

返回值

pfnAssignTargetModeSet 函数返回以下值之一:

返回代码 说明
STATUS_SUCCESS 函数成功。
STATUS_GRAPHICS_INVALID_VIDPN hVidPn 中提供的句柄无效。
STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET VidPnTargetId 中提供的标识符无效。
STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET hVidPnTargetModeSet 中提供的句柄无效。
STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET 尝试分配的目标模式集不包含已固定在目标上的模式。

注解

VidPN 目标标识符由显示微型端口驱动程序分配。 由显示微型端口驱动程序实现的 DxgkDdiQueryChildRelations 返回DXGK_CHILD_DESCRIPTOR结构的数组,其中每个结构都包含一个标识符。

如果通过调用 pfnCreateNewTargetModeSet 获取句柄,然后将该句柄传递给 pfnAssignTargetModeSet,则无需通过调用 pfnReleaseTargetModeSet 释放句柄。

如果通过调用 pfnCreateNewTargetModeSet 获取句柄,然后决定不将新目标模式集分配给目标,则必须通过调用 pfnReleaseTargetModeSet 释放新获取的句柄。

注意pfnAssignTargetModeSet 函数释放或不释放由 hVidPnTargetModeSet 参数标识的目标模式集对象,具体取决于导致 pfnAssignTargetModeSet 失败的原因。

如果 pfnAssignTargetModeSet 失败并出现无效输入参数,pfnAssignTargetModeSet 不会释放目标模式集对象, () STATUS_GRAPHICS_INVALID_VIDPN、STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET或STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET错误代码失败,因为指定的参数不足以让操作系统确定要释放的模式集对象。 此类无效参数情况表示驱动程序中存在严重的编码错误。 可以通过指定正确的 VidPN 句柄、目标标识符或 VidPN 目标模式集句柄来修复此错误。

如果 pfnAssignTargetModeSet 由于以下原因之一而失败,pfnAssignTargetModeSet 将在成功验证所有输入参数后释放目标模式集对象:

  • 目标模式集为空。
  • 目标模式集不包含固定在上一个模式集中的模式(如果有)。
  • 未为 VidPnTargetId 标识的目标创建目标模式集。
 
D3DDDI_VIDEO_PRESENT_TARGET_ID数据类型在 D3dukmdt.h 中定义。

D3DKMDT_HVIDPN和D3DKMDT_HVIDPNTARGETMODESET数据类型在 D3dkmdt.h 中定义。

要求

要求
最低受支持的客户端 Windows Vista
目标平台 桌面
标头 d3dkmddi.h (包括 D3dkmddi.h)
IRQL PASSIVE_LEVEL

另请参阅

VidPN 目标模式集接口

pfnCreateNewTargetModeSet