Compartilhar via


DXGKDDI_VIDPN_ASSIGNTARGETMODESET função de retorno de chamada (d3dkmddi.h)

A função pfnAssignTargetModeSet atribui um modo de destino definido a um destino específico em um VidPN especificado.

Sintaxe

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

Um identificador para um objeto VidPN. O gerente do VidPN anteriormente forneceu esse identificador para o driver de miniporto de exibição chamando DxgkDdiEnumVidPnCofuncModality ou DxgkDdiRecommendFunctionalVidPn.

[in] VidPnTargetId

Um inteiro que identifica um dos destinos presentes do vídeo associados ao objeto VidPN.

[in] hVidPnTargetModeSet

Um identificador para o objeto de conjunto de modo de destino que deve ser atribuído ao destino identificado por VidPnTargetId. O driver de miniporto de exibição obteve esse identificador anteriormente chamando pfnCreateNewTargetModeSet.

Valor de retorno

A função pfnAssignTargetModeSet retorna um dos seguintes valores:

Código de retorno Descrição
STATUS_SUCCESS A função foi bem-sucedida.
STATUS_GRAPHICS_INVALID_VIDPN O identificador fornecido no hVidPn era inválido.
STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET O identificador fornecido em VidPnTargetId era inválido.
STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET O identificador fornecido em hVidPnTargetModeSet era inválido.
STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET O conjunto de modo de destino que você está tentando atribuir não contém o modo que já estava fixado no destino.

Observações

Os identificadores de destino VidPN são atribuídos pelo driver de miniporto de exibição. DxgkDdiQueryChildRelations, implementado pelo driver de miniporto de exibição, retorna uma matriz de estruturas de DXGK_CHILD_DESCRIPTOR, cada uma com um identificador.

Se você obtiver um identificador chamando pfnCreateNewTargetModeSet e, em seguida, passar esse identificador para pfnAssignTargetModeSet, não será necessário liberar o identificador chamando pfnReleaseTargetModeSet.

Se você obtiver um identificador chamando pfnCreateNewTargetModeSet e decidir não atribuir o novo modo de destino definido a um destino, você deverá liberar o identificador recém-obtido chamando pfnReleaseTargetModeSet.

Observação o pfnAssignTargetModeSet libera ou não libera o objeto de conjunto de modo de destino identificado pelo parâmetro hVidPnTargetModeSet, dependendo do motivo que causou falha pfnAssignTargetModeSet.

pfnAssignTargetModeSet não liberar o objeto de conjunto de modo de destino se pfnAssignTargetModeSet falhar com um parâmetro de entrada inválido (ou seja, falhar com o código de erro STATUS_GRAPHICS_INVALID_VIDPN, STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET ou STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET) porque os parâmetros especificados não eram suficientes para o sistema operacional determinar qual objeto de conjunto de modo será liberado. Essas situações de parâmetro inválidas indicam um erro de codificação bruta no driver. Você pode corrigir esse erro especificando o identificador VidPN correto, o identificador de destino ou o identificador de conjunto de modo de destino VidPN.

pfnAssignTargetModeSet liberará o objeto de conjunto de modo de destino depois de validar com êxito todos os parâmetros de entrada se pfnAssignTargetModeSet falhar devido a um dos seguintes motivos:

  • O conjunto de modo de destino está vazio.
  • O conjunto de modo de destino não contém um modo fixado no conjunto de modo anterior, se houver.
  • O conjunto de modo de destino não foi criado para o destino identificado por VidPnTargetId.
 
O tipo de dados D3DDDI_VIDEO_PRESENT_TARGET_ID é definido em D3dukmdt.h.

Os tipos de dados D3DKMDT_HVIDPN e D3DKMDT_HVIDPNTARGETMODESET são definidos em D3dkmdt.h.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista
da Plataforma de Destino Área de trabalho
cabeçalho d3dkmddi.h (inclua D3dkmddi.h)
IRQL PASSIVE_LEVEL

Consulte também

Interface de conjunto de modo de destino do VidPN

pfnCreateNewTargetModeSet