Partilhar via


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

A função pfnAssignSourceModeSet atribui um modo de origem definido a uma fonte específica em um VidPN especificado.

Sintaxe

DXGKDDI_VIDPN_ASSIGNSOURCEMODESET DxgkddiVidpnAssignsourcemodeset;

NTSTATUS DxgkddiVidpnAssignsourcemodeset(
  [in] IN_D3DKMDT_HVIDPN hVidPn,
  [in] IN_CONST_D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId,
  [in] IN_CONST_D3DKMDT_HVIDPNSOURCEMODESET hVidPnSourceModeSet
)
{...}

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] VidPnSourceId

Um inteiro que identifica uma das fontes presentes do vídeo associadas ao objeto VidPN.

[in] hVidPnSourceModeSet

Um identificador para o objeto de conjunto de modo de origem que deve ser atribuído à origem identificada por VidPnSourceId. O driver de miniporto de exibição obteve esse identificador anteriormente chamando pfnCreateNewSourceModeSet.

Valor de retorno

A função pfnAssignSourceModeSet 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_SOURCE O identificador fornecido em VidPnSourceId era inválido.
STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET O identificador fornecido em hVidPnSourceModeSet era inválido.
STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET O conjunto de modo de origem que você está tentando atribuir não contém o modo que já estava fixado na origem.

Observações

Os identificadores de origem VidPN são atribuídos pelo sistema operacional. DxgkDdiStartDevice, implementado pelo driver de miniporto de exibição, retorna o número N de fontes presentes de vídeo compatíveis com o adaptador de exibição. Em seguida, o sistema operacional atribui identificadores 0, 1, 2, ... N - 1.

Se você obter um identificador chamando pfnCreateNewSourceModeSet e, em seguida, passar esse identificador para pfnAssignSourceModeSet, você não precisará liberar o identificador chamando pfnReleaseSourceModeSet.

Se você obter um identificador chamando pfnCreateNewSourceModeSet e, em seguida, decidir não atribuir o novo modo de origem definido a uma fonte, você deverá liberar o identificador recém-obtido chamando pfnReleaseSourceModeSet.

Observação a função pfnAssignSourceModeSet ou não libera o objeto de conjunto de modo de origem identificado pelo parâmetro de hVidPnSourceModeSet, dependendo do motivo que causou falha de pfnAssignSourceModeSet.

pfnAssignSourceModeSet não liberar o objeto de conjunto de modo de origem se pfnAssignSourceModeSet 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_SOURCE ou STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET) 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 origem ou o identificador de conjunto de modo de origem VidPN.

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

  • O conjunto de modo de origem está vazio.
  • O conjunto de modo de origem não contém um modo fixado no conjunto de modo anterior, se houver.
  • O conjunto de modo de origem não foi criado para a origem identificada pelo VidPnSourceId.
 
O tipo de dados D3DDDI_VIDEO_PRESENT_SOURCE_ID é definido em D3dukmdt.h.

Os tipos de dados D3DKMDT_HVIDPN e D3DKMDT_HVIDPNSOURCEMODESET 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 do conjunto de modo de origem do VidPN

pfnCreateNewSourceModeSet