DXGKDDI_VIDPN_CREATENEWTARGETMODESET回调函数 (d3dkmddi.h)

pfnCreateNewTargetModeSet 函数在指定的 VidPN 对象中创建新的目标模式集对象。

语法

DXGKDDI_VIDPN_CREATENEWTARGETMODESET DxgkddiVidpnCreatenewtargetmodeset;

NTSTATUS DxgkddiVidpnCreatenewtargetmodeset(
  [in]  IN_CONST_D3DKMDT_HVIDPN hVidPn,
  [in]  IN_CONST_D3DDDI_VIDEO_PRESENT_TARGET_ID VidPnTargetId,
  [out] OUT_PD3DKMDT_HVIDPNTARGETMODESET phNewVidPnTargetModeSet,
  [out] DEREF_OUT_CONST_PPDXGK_VIDPNTARGETMODESET_INTERFACE ppVidPnTargetModeSetInterace
)
{...}

参数

[in] hVidPn

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

[in] VidPnTargetId

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

[out] phNewVidPnTargetModeSet

指向接收新创建的目标模式集对象的句柄的变量的指针。

[out] ppVidPnTargetModeSetInterace

指向变量的指针,该变量接收指向 DXGK_VIDPNTARGETMODESET_INTERFACE 结构的指针。 结构包含指向显示微型端口驱动程序可以调用以检查和更改目标模式集对象的函数的指针。

返回值

pfnCreateNewTargetModeSet 函数返回以下值之一:

返回代码 说明
STATUS_SUCCESS 函数成功。
STATUS_GRAPHICS_INVALID_VIDPN hVidPn 中提供的句柄无效。
STATUS_NO_MEMORY VidPN 管理器无法分配创建新的目标模式集对象所需的内存。

注解

若要将新目标模式集分配给 VidPN 实现中的特定目标,请执行以下步骤:

  1. 调用 pfnCreateNewTargetModeSet 以获取新目标模式集对象的句柄。 该目标模式集对象属于指定的特定 VidPN 对象。
  2. 使用 DXGK_VIDPNTARGETMODESET_INTERFACE 结构的函数将模式添加到目标模式集对象。
  3. 调用 pfnAssignTargetModeSet 将新的目标模式集分配给特定目标。
如果通过调用 pfnCreateNewTargetModeSet 获取句柄,然后将该句柄传递给 pfnAssignTargetModeSet,则无需通过调用 pfnReleaseTargetModeSet 释放句柄。

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

ppVidPnTargetModeSetInterface 中返回的 DXGK_VIDPNTARGETEMODESET_INTERFACE 结构的生存期归操作系统所有。 使用此所有权方案,操作系统可以在运行时切换到较新的实现,而不会中断接口的客户端。

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

要求

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

另请参阅

VidPN 目标模式集接口

pfnAssignTargetModeSet

pfnReleaseTargetModeSet