Compartir a través de


DXGKDDI_VIDPN_ASSIGNTARGETMODESET función de devolución de llamada (d3dkmddi.h)

La función pfnAssignTargetModeSet asigna un modo de destino establecido a un destino determinado en un VidPN especificado.

Sintaxis

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
)
{...}

Parámetros

[in] hVidPn

Identificador de un objeto VidPN. El administrador de VidPN proporcionó anteriormente este identificador al controlador de miniporte de pantalla llamando a DxgkDdiEnumVidPnCofuncModality o DxgkDdiRecommendFunctionalVidPn.

[in] VidPnTargetId

Entero que identifica uno de los destinos de vídeo presentes asociados al objeto VidPN.

[in] hVidPnTargetModeSet

Identificador del objeto establecido en modo de destino que se va a asignar al destino identificado por VidPnTargetId. El controlador de miniporte de pantalla obtuvo anteriormente este identificador mediante una llamada a pfnCreateNewTargetModeSet.

Valor devuelto

La función pfnAssignTargetModeSet devuelve uno de los valores siguientes:

Código devuelto Descripción
STATUS_SUCCESS La función se ha realizado correctamente.
STATUS_GRAPHICS_INVALID_VIDPN El identificador proporcionado en hVidPn no era válido.
STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET El identificador proporcionado en VidPnTargetId no era válido.
STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET El identificador proporcionado en hVidPnTargetModeSet no era válido.
STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET El conjunto de modo de destino que está intentando asignar no contiene el modo que ya estaba anclado en el destino.

Comentarios

El controlador de minipuerto de visualización asigna identificadores de destino VidPN. DxgkDdiQueryChildRelations, implementado por el controlador de miniporte de pantalla, devuelve una matriz de estructuras de DXGK_CHILD_DESCRIPTOR , cada una de las cuales contiene un identificador.

Si obtiene un identificador llamando a pfnCreateNewTargetModeSet y, a continuación, pasa ese identificador a pfnAssignTargetModeSet, no es necesario liberar el identificador llamando a pfnReleaseTargetModeSet.

Si obtiene un identificador llamando a pfnCreateNewTargetModeSet y decide no asignar el nuevo modo de destino establecido en un destino, debe liberar el identificador recién obtenido llamando a pfnReleaseTargetModeSet.

Nota La función pfnAssignTargetModeSet libera o no libera el objeto de conjunto de modo de destino identificado por el parámetro hVidPnTargetModeSet según el motivo por el que se produzca un error en pfnAssignTargetModeSet .

pfnAssignTargetModeSet no libera el objeto establecido en modo de destino si pfnAssignTargetModeSet produce un error con un parámetro de entrada no válido (es decir, se produce un error con el código de error STATUS_GRAPHICS_INVALID_VIDPN, STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET o STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET) porque los parámetros especificados no eran suficientes para que el sistema operativo determinara qué modo estableció el objeto en versión. Estas situaciones de parámetro no válidas indican un error de codificación bruta en el controlador. Puede corregir este error especificando el identificador vidPN correcto, el identificador de destino o el identificador de conjunto de modo de destino de VidPN.

pfnAssignTargetModeSet liberará el objeto establecido en modo de destino después de validar correctamente todos los parámetros de entrada si pfnAssignTargetModeSet produce un error debido a uno de los siguientes motivos:

  • El conjunto de modo de destino está vacío.
  • El conjunto de modo de destino no contiene un modo anclado en el conjunto de modo anterior, si existe.
  • El conjunto de modo de destino no se creó para el destino identificado por VidPnTargetId.
 
El tipo de datos D3DDDI_VIDEO_PRESENT_TARGET_ID se define en D3dukmdt.h.

Los tipos de datos D3DKMDT_HVIDPN y D3DKMDT_HVIDPNTARGETMODESET se definen en D3dkmdt.h.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Plataforma de destino Escritorio
Encabezado d3dkmddi.h (incluye D3dkmddi.h)
IRQL PASSIVE_LEVEL

Consulte también

Interfaz de conjunto de modo de destino vidPN

pfnCreateNewTargetModeSet