Compartilhar via


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

A função pfnAssignTargetModeSet atribui um modo de destino definido como 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 gerenciador VidPN forneceu anteriormente 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.

Retornar valor

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.

Comentários

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 DXGK_CHILD_DESCRIPTOR , cada uma contendo um identificador.

Se você obtiver um identificador chamando pfnCreateNewTargetModeSet e 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, deverá liberar o identificador recém-obtido chamando pfnReleaseTargetModeSet.

Nota A funçã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 a falha de 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 foram suficientes para o sistema operacional determinar qual objeto do modo definido 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 do 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 modo anterior definido, 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
Cliente mínimo com suporte Windows Vista
Plataforma de Destino Área de Trabalho
Cabeçalho d3dkmddi.h (inclua D3dkmddi.h)
IRQL PASSIVE_LEVEL

Confira também

Interface de conjunto do modo de destino VidPN

pfnCreateNewTargetModeSet