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.
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.
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 |