DXGKCB_EXCLUDE_ADAPTER_ACCESS função de retorno de chamada (dispmprt.h)

A função DxgkCbExcludeAdapterAccess impede todo o acesso ao adaptador de exibição e chama uma rotina de retorno de chamada DxgkProtectedCallback fornecida enquanto estiver nesse estado protegido.

Sintaxe

DXGKCB_EXCLUDE_ADAPTER_ACCESS DxgkcbExcludeAdapterAccess;

NTSTATUS DxgkcbExcludeAdapterAccess(
  [in] HANDLE DeviceHandle,
  [in] ULONG Attributes,
  [in] DXGKDDI_PROTECTED_CALLBACK DxgkProtectedCallback,
  [in] PVOID ProtectedCallbackContext
)
{...}

Parâmetros

[in] DeviceHandle

Um identificador que representa um adaptador de exibição. O driver de miniporto de exibição obteve esse identificador no membro DeviceHandle da estrutura DXGKRNL_INTERFACE que foi passada para DxgkDdiStartDevice.

[in] Attributes

Um valor que especifica operações de memória de vídeo. Esse parâmetro pode ser qualquer combinação dos valores de sinalizador de bit a seguir, exceto que DXGK_EXCLUDE_EVICT_ALL e DXGK_EXCLUDE_CALL_SYNCHRONOUS são mutuamente exclusivos. Esses valores são definidos em Dispmprt.h.

DXGK_EXCLUDE_EVICT_ALL

Toda a memória de vídeo no adaptador é copiada para a memória do sistema; essa é uma operação cara. Se o parâmetro Attributes não estiver definido como esse valor, o acesso a superfícies bloqueadas na memória do sistema será suspenso.

DXGK_EXCLUDE_CALL_SYNCHRONOUS

Executa a rotina de retorno de chamada do driver DxgkProtectedCallback protegida no mesmo contexto de thread que o chamador. O chamador deve estar chamando de uma chamada DDI sincronizada de segundo ou terceiro nível . Caso contrário, a função DxgkCbExcludeAdapterAccess falhará.

DXGK_EXCLUDE_BRIDGE_ACCESS

Protege o acesso à porta raiz PCI Express (PCIe) quando o driver precisa acessar o espaço de configuração da porta raiz. Defina o parâmetro Attributes para esse valor antes de chamar as funções DxgkCbReadDeviceSpace ou DxgkCbWriteDeviceSpace com o parâmetro DataType definido como DXGK_WHICHSPACE_BRIDGE.

[in] DxgkProtectedCallback

A rotina de retorno de chamada a ser chamada novamente quando todo o acesso ao adaptador for interrompido.

[in] ProtectedCallbackContext

Um ponteiro para o valor a ser passado para o parâmetro ProtectedCallbackContext da rotina de retorno de chamada DxgkProtectedCallback .

Retornar valor

DxgkCbExcludeAdapterAccess retornará STATUS_SUCCESS se for bem-sucedido. Caso contrário, ele retornará um dos códigos de erro definidos em Ntstatus.h.

Comentários

As solicitações de aplicativo serão bloqueadas até que essa função retorne. Nesse estado de proteção, a rotina de retorno de chamada DxgkProtectedCallback fornecida é chamada em IRQL = PASSIVE_LEVEL.

O DxgkCbExcludeAdapterAccess adquire acesso exclusivo ao adaptador para evitar operações de E/S relacionadas a gráficos para o adaptador de exibição e todos os links. Isso efetivamente ociosa pela GPU durante toda a chamada.

Essa função também impede todo o acesso de espaço de configuração PCI à porta raiz PCI Express (PCIe) se DXGK_EXCLUDE_BRIDGE_ACCESS for especificado no parâmetro Attributes .

O driver não deve bloquear a execução contínua do thread de chamada aguardando o retorno da rotina de retorno de chamada DxgkProtectedCallback . Por exemplo, o driver pode agendar um thread de trabalho assíncrono para lidar com a rotina de retorno de chamada.

Uma exceção a esse bloqueio de solicitações de aplicativo ocorre quando o driver de exibição do modo de usuário definiu o sinalizador de campo de bits UseAlternateVA no membro Flags da estrutura D3DDDICB_LOCKFLAGS em uma chamada para a função pfnLockCb . DxgkCbExcludeAdapterAccess não bloqueia esse tipo de bloqueio de alocação e a CPU pode acessar o adaptador de exibição enquanto a rotina de retorno de chamada protegida está em execução.

Nota Se UseAlternateVA tiver sido definido em uma chamada para pfnLockCb, o driver de miniporto de exibição não deverá chamar DxgkCbExcludeAdapterAccess.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Plataforma de Destino Área de Trabalho
Cabeçalho dispmprt.h (inclua Dispmprt.h)
IRQL PASSIVE_LEVEL

Confira também

DxgkProtectedCallback