Compartilhar via


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

Dxgkrnl chama DxgkDdiBeginExclusiveAccess para notificar o driver do modo kernel de que uma opção de domínio IOMMU está prestes a ocorrer.

Sintaxe

DXGKDDI_BEGINEXCLUSIVEACCESS DxgkddiBeginexclusiveaccess;

NTSTATUS DxgkddiBeginexclusiveaccess(
  IN_CONST_HANDLE hAdapter,
  IN_PDXGKARG_BEGINEXCLUSIVEACCESS pBeginExclusiveAccess
)
{...}

Parâmetros

hAdapter

[in] Um identificador para um bloco de contexto associado a um adaptador de exibição.

pBeginExclusiveAccess

[in] Ponteiro para uma estrutura DXGKARG_BEGINEXCLUSIVEACCESS que contém os argumentos de entrada para DxgkDdiBeginExclusiveAccess.

Retornar valor

DxgkDdiBeginExclusiveAccess deverá retornar STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, ele deverá retornar um código de erro NTSTATUS apropriado.

Comentários

A anexação e desanexação de domínio IOMMU é extremamente rápida, mas, no entanto, não é atômica no momento. Isso significa que não há garantia de que uma transação emitida por PCIe seja traduzida corretamente durante a troca para um domínio com mapeamentos diferentes.

Para lidar com essa situação, Dxgkrnl chama o seguinte par DDI KMD:

  • DxgkDdiBeginExclusiveAccess para notificar o KMD de que uma opção de domínio IOMMU está prestes a ocorrer.
  • DxgkDdiEndExclusiveAccess após a conclusão da opção de domínio IOMMU.

O driver deve garantir que seu hardware seja silencioso sempre que o dispositivo for alternado para um novo domínio IOMMU. Ou seja, o driver deve garantir que ele não leia ou escreva na memória do sistema do dispositivo entre essas duas chamadas.

Entre essas duas chamadas, dxgkrnl garante o seguinte:

  • O agendador será suspenso. Todas as cargas de trabalho ativas serão liberadas e nenhuma nova carga de trabalho será enviada ou agendada no hardware.
  • Nenhuma outra chamada DDI será feita.

Como parte dessas chamadas, o driver pode optar por desabilitar e suprimir interrupções (incluindo interrupções vsync) durante o acesso exclusivo, mesmo sem notificação explícita do sistema operacional.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1803 (WDDM 2.4)
Cabeçalho d3dkmddi.h
IRQL PASSIVE_LEVEL

Confira também

DRIVER_INITIALIZATION_DATA

DXGKARG_BEGINEXCLUSIVEACCESS

DxgkDdiEndExclusiveAccess