DXGKDDI_PREEMPTCOMMAND função de retorno de chamada (d3dkmddi.h)
A função DxgkDdiPreemptCommand preempõe um buffer de DMA (acesso direto à memória) que foi enviado anteriormente e atualmente enfileirado na unidade de execução de comando de hardware.
Sintaxe
DXGKDDI_PREEMPTCOMMAND DxgkddiPreemptcommand;
NTSTATUS DxgkddiPreemptcommand(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_PREEMPTCOMMAND pPreemptCommand
)
{...}
Parâmetros
[in] hAdapter
Um identificador para um bloco de contexto associado a um adaptador de exibição. O driver de miniporta de exibição anteriormente forneceu esse identificador para o subsistema kernel de elementos gráficos do Microsoft DirectX no parâmetro de saída MiniportDeviceContext da função DxgkDdiAddDevice .
[in] pPreemptCommand
Um ponteiro para uma estrutura DXGKARG_PREEMPTCOMMAND que descreve o comando usado para antecipar um buffer de DMA enviado anteriormente para a unidade de execução de comando de hardware.
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
Se o driver determinar que o hardware já terminou de processar todos os buffers de DMA enviados e se o hardware informou o agendador da GPU (unidade de processamento gráfico) sobre as conclusões, quando sua função DxgkDdiPreemptCommand é chamada para preempção dos buffers de DMA, o driver deve executar as seguintes operações em vez de enviar a cerca de preempção identificada pelo membro PreemptionFenceId de DXGKARG_PREEMPTCOMMAND para o hardware:
- Elevar o IRQL para o nível de interrupção. Por exemplo, o driver pode chamar a função DxgkCbSynchronizeExecution para sincronizar com sua função DxgkDdiInterruptRoutine .
-
Informe o agendador de GPU sobre as informações de preempção. O driver pode chamar a função DxgkCbNotifyInterrupt diretamente ou chamar sua função DxgkDdiInterruptRoutine (por exemplo, se o driver também precisar executar outras atualizações).
Observe que o agendador de GPU lida com instâncias em que o hardware parou de responder devido ao trabalho de TDR (Detecção e Recuperação de Tempo Limite).
- 0x2
- O código de erro NTSTATUS retornado da chamada de driver com falha
- Um ponteiro para a estrutura DXGKARG_PREEMPTCOMMAND
- Um ponteiro para uma estrutura de dados interna do agendador
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |