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 |