DXGKDDI_VIDPN_CREATENEWSOURCEMODESET回调函数 (d3dkmddi.h)

pfnCreateNewSourceModeSet 函数在指定的 VidPN 对象中创建新的源模式集对象。

语法

DXGKDDI_VIDPN_CREATENEWSOURCEMODESET DxgkddiVidpnCreatenewsourcemodeset;

NTSTATUS DxgkddiVidpnCreatenewsourcemodeset(
  [in]  IN_CONST_D3DKMDT_HVIDPN hVidPn,
  [in]  IN_CONST_D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId,
  [out] OUT_PD3DKMDT_HVIDPNSOURCEMODESET phNewVidPnSourceModeSet,
  [out] DEREF_OUT_CONST_PPDXGK_VIDPNSOURCEMODESET_INTERFACE ppVidPnSourceModeSetInterface
)
{...}

参数

[in] hVidPn

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

[in] VidPnSourceId

一个整数,标识与 VidPN 对象关联的视频呈现源之一。

[out] phNewVidPnSourceModeSet

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

[out] ppVidPnSourceModeSetInterface

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

返回值

pfnCreateNewSourceModeSet 函数返回以下值之一:

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

注解

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

  1. 调用 pfnCreateNewSourceModeSet 以获取新源模式集对象的句柄。 该源模式集对象属于指定的特定 VidPN 对象。
  2. 使用 DXGK_VIDPNSOURCEMODESET_INTERFACE 接口的 函数将模式添加到源模式集对象。
  3. 调用 pfnAssignSourceModeSet 将新的源模式集分配给特定源。
如果通过调用 pfnCreateNewSourceModeSet 获取句柄,然后将该句柄传递给 pfnAssignSourceModeSet,则无需通过调用 pfnReleaseSourceModeSet 释放句柄。

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

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

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

要求

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

另请参阅

VidPN 源模式集接口

pfnAssignSourceModeSet

pfnReleaseSourceModeSet