DXGKDDI_STOP_DEVICE_AND_RELEASE_POST_DISPLAY_OWNERSHIP função de retorno de chamada (dispmprt.h)
Chamado pelo sistema operacional para solicitar que o driver de miniporta de exibição redefina o dispositivo de exibição e libere a propriedade do dispositivo POST (power-on self-test) atual.
Começando com Windows 8, o sistema operacional chama essa função durante uma operação de parada de Plug and Play (PnP).
Para indicar ao sistema operacional que essa função tem suporte, o driver deve definir o membro NonVGASupport da estrutura DXGK_DRIVERCAPS quando a função DxgkDdiQueryAdapterInfo for chamada.
Sintaxe
DXGKDDI_STOP_DEVICE_AND_RELEASE_POST_DISPLAY_OWNERSHIP DxgkddiStopDeviceAndReleasePostDisplayOwnership;
NTSTATUS DxgkddiStopDeviceAndReleasePostDisplayOwnership(
[in] PVOID MiniportDeviceContext,
[in] D3DDDI_VIDEO_PRESENT_TARGET_ID TargetId,
[out] PDXGK_DISPLAY_INFORMATION DisplayInfo
)
{...}
Parâmetros
[in] MiniportDeviceContext
Um identificador para um bloco de contexto associado a um adaptador de exibição. A função DxgkDdiAddDevice do driver de miniporta de vídeo forneceu anteriormente esse identificador para o subsistema de kernel de elementos gráficos do Microsoft DirectX.
[in] TargetId
Um valor D3DDDI_VIDEO_PRESENT_TARGET_ID que especifica o identificador do destino do vídeo presente no adaptador de exibição ao qual o dispositivo de exibição está conectado. Esse identificador pode ser para o destino que foi deixado no estado atual da VidPN (rede presente em vídeo) durante a chamada anterior para DxgkDdiCommitVidPn.
Para obter mais detalhes sobre o uso do parâmetro TargetId , consulte a seção Comentários a seguir.
[out] DisplayInfo
Um ponteiro para uma estrutura DXGK_DISPLAY_INFORMATION alocada pelo sistema operacional.
Retornar valor
Retorna STATUS_SUCCESS se for bem-sucedido. Caso contrário, ele retornará um dos códigos de erro definidos em Ntstatus.h. Para obter mais informações, consulte a seção Comentários a seguir.
Comentários
Formatos de cor permitidos
O driver de miniporta de exibição deve relatar apenas um formato de cor de 32 bits. Portanto, o membroColorFormatDisplayInfo-> deve incluir apenas um dos dois formatos a seguir:- D3DDDIFMT_X8R8G8B8
- D3DDDIFMT_A8R8G8B8
Inicialização de destino de apresentação de vídeo
O driver de miniporta de exibição deve definir o membro DisplayInfo->TargetId como o identificador de destino da exibição que permanece ativa. Normalmente, esse identificador será o valor do parâmetro TargetId que o sistema operacional passou para o driver.Da mesma forma, o driver de miniporto de exibição deve definir o membro DisplayInfo-AcpiId> como o identificador ACPI da exibição que permanece ativo.
Etapas necessárias para exibir o driver de miniporta
O driver de miniporta de exibição deve seguir estas etapas quando sua função DxgkDdiStopDeviceAndReleasePostDisplayOwnership for chamada:- O driver deve interromper o dispositivo de exibição associado ao destino de vídeo presente indicado pelo parâmetro TargetId , mas deve manter a exibição associada a esse destino ativada e visível.
- O driver deve marcar a conectividade da exibição associada a esse destino. Se o destino não tiver uma exibição conectada, o driver deverá concluir a chamada para essa função e retornar o código de erro STATUS_NOT_SUPPORTED.
- O driver deve desabilitar o sinal para todos os outros monitores conectados ao adaptador de vídeo. Se isso não for possível, o driver deverá tentar colocar uma imagem em branco em todas as outras exibições. Se isso não for possível, o driver deverá deixar a última imagem na tela inalterada.
- O driver deve manter o modo de exibição atual no destino indicado e fornecer esse modo de volta ao sistema operacional como parte dessa chamada de função.
- Se o driver não puder manter o modo de exibição atual ou se o destino não fizer parte da topologia ativa, o driver deverá selecionar um destino ativo alternativo e tentar manter a resolução atual desse destino. Se isso não for possível, o driver deverá tentar definir a exibição para sua resolução nativa ou para um modo de alta resolução. Nesse caso, a resolução de exibição deve ser definida como pelo menos 800 x 600 pixels em formatos de cor D3DDDIFMT_R8G8B8 (24 bits por pixel) ou D3DDDIFMT_X8R8G8B8 (32 bpp) da enumeração D3DDDIFORMAT .
- Se nenhum destino estiver ativo, o driver deverá tentar habilitar um destino, preferencialmente o painel interno, se ele estiver disponível.
- Se possível, o driver deve limpar o buffer de quadro atual e desabilitar o cursor de hardware e todas as sobreposições de exibição.
- Se possível, o driver deve definir a rampa gama do dispositivo com seus valores padrão.
- O driver deve definir o buffer de quadro atual para estar em um modo linear. O driver faz isso usando o intervalo de swizzle padrão ou desabilitando o modo swizzle.
- O driver deve tornar o buffer de quadro atual acessível para a CPU mapeando o buffer de quadro atual linearmente para o espaço de endereço da CPU.
- O driver deve garantir que a visibilidade do destino indicado esteja definida como "habilitada".
Outros requisitos
Em sistemas que dão suporte à UEFI (Unified Extensible Firmware Interface), não existe um BIOS (sistema básico de entrada/saída) VGA. Para dar suporte a operações de parada PnP nesses sistemas, o WDDM (Modelo de Driver de Vídeo do Windows) 1.2 e posterior fornece suporte para que o sistema operacional redefina o dispositivo POST e obtenha suas informações de exibição durante uma operação de parada PnP. O sistema operacional faz isso chamando a função DxgkDdiStopDeviceAndReleasePostDisplayOwnership do driver de vídeo.Uma operação de parada PnP pode ocorrer em resposta a solicitações por processos como o Gerenciador de Dispositivos ou durante um processo de atualização de driver.
Começando com Windows 8, o sistema operacional chama a função DxgkDdiStopDeviceAndReleasePostDisplayOwnership do driver somente no dispositivo POST durante uma operação de parada PnP.
Em sistemas somente UEFI, se o driver de miniporta de exibição falhar em uma chamada para essa função, uma tela preta será exibida e o driver IHV não será instalado. A solução alternativa para esse cenário é que o usuário reinicie o computador.
Para obter mais informações sobre como essa função é usada em cenários PnP, consulte Plug and Play (PnP) no WDDM 1.2 e posterior.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 |
Servidor mínimo com suporte | Windows Server 2012 |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | dispmprt.h |
IRQL | PASSIVE_LEVEL |