Partilhar 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 no parâmetro de saída MiniportDeviceContext da função DxgkDdiAddDevice .

[in] pPatch

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

Retornar valor

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.

Comentários

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 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 expressa do AGP/PCI ou à memória do sistema.

O driver deve examinar a lista de localização de patch fornecida no membro pPatchLocationList da estrutura DXGKARG_PATCH apontada pelo parâmetro pPatch para identificar locais no buffer de DMA que devem ser corrigidos com endereços físicos. A lista de alocação fornecida (que é especificada pelo membro pAllocationList 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 de elementos gráficos do Microsoft DirectX fará com que ocorra uma verificação de bugs do sistema. Em um arquivo de despejo de memória, o erro é observado pela mensagem BugCheck 0x119, 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 se tornar paginável.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Plataforma de Destino Área de Trabalho
Cabeçalho d3dkmddi.h
IRQL PASSIVE_LEVEL

Confira também

DXGKARG_PATCH

DxgkDdiAddDevice