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 管理器以前通过调用 DxgkDdiEnumVidPnCofuncModality 或 DxgkDdiRecommendFunctionalVidPn为显示微型端口驱动程序提供了此句柄。
[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 如果 pfnAssignTargetModeSet 输入参数无效(即STATUS_GRAPHICS_INVALID_VIDPN、STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET或STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET错误代码失败),因为指定的参数不足以确定要释放的模式集对象。 此类无效的参数情况表示驱动程序中的编码错误。 可以通过指定正确的 VidPN 句柄、目标标识符或 VidPN 目标模式集句柄来修复此错误。
如果 pfnAssignTargetModeSet 失败,pfnAssignTargetModeSet 成功验证所有输入参数后,将释放目标模式集对象:
- 目标模式集为空。
- 目标模式集不包含在上一个模式集中固定的模式(如果有)。
- 未为由 VidPnTargetId标识的目标创建目标模式集。
D3DKMDT_HVIDPN和D3DKMDT_HVIDPNTARGETMODESET数据类型在 D3dkmdt.h中定义。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista |
目标平台 | 桌面 |
标头 | d3dkmddi.h (包括 D3dkmddi.h) |
IRQL | PASSIVE_LEVEL |