DXGKDDI_PREEMPTCOMMAND función de devolución de llamada (d3dkmddi.h)
La función DxgkDdiPreemptCommand adelanta un búfer de acceso directo a memoria (DMA) que se envió anteriormente a y actualmente se puso en cola en la unidad de ejecución de comandos de hardware.
Sintaxis
DXGKDDI_PREEMPTCOMMAND DxgkddiPreemptcommand;
NTSTATUS DxgkddiPreemptcommand(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_PREEMPTCOMMAND pPreemptCommand
)
{...}
Parámetros
[in] hAdapter
Identificador de un bloque de contexto asociado a un adaptador de pantalla. El controlador de miniporte de pantalla proporcionó anteriormente este identificador al subsistema del kernel de gráficos de Microsoft DirectX en el parámetro de salida MiniportDeviceContext de la función DxgkDdiAddDevice .
[in] pPreemptCommand
Puntero a una estructura de DXGKARG_PREEMPTCOMMAND que describe el comando que se usa para adelantar un búfer DMA enviado previamente a la unidad de ejecución de comandos de hardware.
Valor devuelto
Devuelve STATUS_SUCCESS tras la finalización correcta. Si el controlador devuelve en su lugar un código de error, el sistema operativo hace que se produzca una comprobación de errores del sistema. Para obtener más información, vea la sección Comentarios que se muestra más adelante.
Comentarios
Si el controlador determina que el hardware ya ha terminado de procesar todos los búferes DMA enviados, y que el hardware informó al programador de la unidad de procesamiento gráfico (GPU) sobre las finalizaciones,--cuando se llama a su función DxgkDdiPreemptCommand para adelantar los búferes DMA, el controlador debe realizar las siguientes operaciones en lugar de enviar la barrera de adelantamiento identificada por el miembro PreemptionFenceId de DXGKARG_PREEMPTCOMMAND al hardware:
- Genere IRQL al nivel de interrupción. Por ejemplo, el controlador puede llamar a la función DxgkCbSynchronizeExecution para sincronizar con su función DxgkDdiInterruptRoutine .
-
Informe al programador de GPU sobre la información de adelantamiento. El controlador puede llamar directamente a la función DxgkCbNotifyInterrupt o llamar a su función DxgkDdiInterruptRoutine (por ejemplo, si el controlador también debe realizar otras actualizaciones).
Tenga en cuenta que el programador de GPU controla las instancias en las que el hardware ha dejado de responder debido al trabajo de detección y recuperación de tiempo de espera (TDR).
- 0x2
- El código de error NTSTATUS devuelto por la llamada de controlador con error
- Puntero a la estructura de DXGKARG_PREEMPTCOMMAND
- Puntero a una estructura de datos de programador interna
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Plataforma de destino | Escritorio |
Encabezado | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |