Compartilhar via


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

A função DxgkDdiPatch atribui endereços físicos ao buffer de DMA (acesso direto à memória) fornecido antes que o buffer DMA seja enviado para o hardware gráfico.

Sintaxe

DXGKDDI_PATCH DxgkddiPatch;

NTSTATUS DxgkddiPatch(
  [in] IN_CONST_HANDLE hAdapter,
  [in] IN_CONST_PDXGKARG_PATCH pPatch
)
{...}

Parâmetros

[in] hAdapter

Um identificador para um bloco de contexto associado a um adaptador de exibição. O driver de miniporto de exibição forneceu anteriormente esse identificador para o subsistema de kernel de elementos gráficos do Microsoft DirectX na função MiniportDeviceContext da função DxgkDdiAddDevice.

[in] pPatch

Um ponteiro para uma estrutura DXGKARG_PATCH que descreve o buffer de DMA a ser corrigido com endereços físicos.

Valor de retorno

Retorna STATUS_SUCCESS após a conclusão bem-sucedida. Se o driver retornar um código de erro, o sistema operacional fará com que ocorra uma verificação de bugs do sistema. Para obter mais informações, consulte a seção Comentários a seguir.

Observações

A função DxgkDdiPatch deve atribuir endereços físicos ao buffer DMA em vigor. Portanto, quando o driver de miniporto de exibição gera o buffer de DMA, o driver deve garantir que o espaço esteja disponível no buffer de DMA para inserir instruções necessárias para lidar com endereços físicos. Observe que os endereços físicos podem corresponder à memória de vídeo, memória AGP/PCI Express ou memória do sistema.

O driver deve examinar a lista de localização de patch fornecida no pPatchLocationList membro da estrutura de DXGKARG_PATCH que é apontada pelo parâmetro pPatch para identificar locais no buffer DMA que devem ser corrigidos com endereços físicos. A lista de alocação fornecida (especificada pelo pAllocationList membro do DXGKARG_PATCH) também contém os endereços físicos gerados pelo gerenciador de memória de vídeo. A chamada para a função DxgkDdiPatch do driver é a última chance para o driver modificar o conteúdo do buffer DMA antes que o buffer DMA seja enviado para a GPU (unidade de processamento gráfico). Observe que o driver pode corrigir um buffer de DMA várias vezes em cenários em que o buffer de DMA é preemptado.

O driver pode corrigir o valor fornecido no membro SubmissionFenceId de DXGKARG_PATCH no comando fence no final do buffer DMA. Para obter mais informações sobre esse membro, consulte Fornecendo identificadores de cerca.

Se o driver retornar um código de erro, o subsistema de kernel gráfico do Microsoft DirectX fará com que ocorra uma verificação de bugs do sistema. Em um arquivo de despejo de falha, o erro é observado pela mensagem 0x119BugCheck, que tem os quatro parâmetros a seguir.

  1. 0x3
  2. Um ponteiro para uma estrutura de dados do agendador interno
  3. Um ponteiro para uma estrutura de dados do agendador interno
  4. Um ponteiro para uma estrutura de dados do agendador interno
DxgkDdiPatch deve ficar paginável.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista
da Plataforma de Destino Área de trabalho
cabeçalho d3dkmddi.h
IRQL PASSIVE_LEVEL

Consulte também

DXGKARG_PATCH

DxgkDdiAddDevice