Compartilhar 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 gerenciador VidPN forneceu anteriormente 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.

Retornar valor

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.

Comentários

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ê obtiver um identificador chamando pfnCreateNewSourceModeSet e passar esse identificador para pfnAssignSourceModeSet, não será necessário liberar o identificador chamando pfnReleaseSourceModeSet.

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

Nota A função pfnAssignSourceModeSet libera ou não libera o objeto de conjunto de modo de origem identificado pelo parâmetro hVidPnSourceModeSet , dependendo do motivo que causou a 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 lançar. 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 do 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 modo anterior definido, se houver.
  • O conjunto de modo de origem não foi criado para a origem identificada por 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
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 origem VidPN

pfnCreateNewSourceModeSet