Partilhar via


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

Dxgkrnl chamadas 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 de DXGKARG_BEGINEXCLUSIVEACCESS que contém os argumentos de entrada para DxgkDdiBeginExclusiveAccess.

Valor de retorno

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

Observações

A anexação e o desanexamento do domínio IOMMU são extremamente rápidos, mas, no entanto, não são atômicos no momento. Isso significa que uma transação emitida por PCIe não tem garantia de ser 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 esteja 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
de cliente com suporte mínimo Windows 10, versão 1803 (WDDM 2.4)
cabeçalho d3dkmddi.h
IRQL PASSIVE_LEVEL

Consulte também

DRIVER_INITIALIZATION_DATA

DXGKARG_BEGINEXCLUSIVEACCESS

DxgkDdiEndExclusiveAccess