функция обратного вызова DXGKDDI_PREEMPTCOMMAND (d3dkmddi.h)
Функция DxgkDdiPreemptCommand вытесняет буфер прямого доступа к памяти (DMA), который ранее был отправлен и в настоящее время помещен в очередь в аппаратном блоке выполнения команд.
Синтаксис
DXGKDDI_PREEMPTCOMMAND DxgkddiPreemptcommand;
NTSTATUS DxgkddiPreemptcommand(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_PREEMPTCOMMAND pPreemptCommand
)
{...}
Параметры
[in] hAdapter
Дескриптор для блока контекста, связанного с видеоадаптером. Драйвер мини-порта дисплея ранее предоставлял этот дескриптор подсистеме ядра графики Microsoft DirectX в выходном параметре MiniportDeviceContext функции DxgkDdiAddDevice .
[in] pPreemptCommand
Указатель на структуру DXGKARG_PREEMPTCOMMAND , описывающую команду, используемую для вытебления буфера DMA, ранее отправленного в аппаратную единицу выполнения команд.
Возвращаемое значение
Возвращает STATUS_SUCCESS после успешного завершения. Если вместо этого драйвер возвращает код ошибки, операционная система вызывает проверку системной ошибки. Дополнительные сведения см. в разделе "Примечания".
Комментарии
Если драйвер определяет, что оборудование уже завершило обработку всех отправленных буферов DMA и что оборудование сообщило планировщику графического процессора (GPU) о завершениях, при вызове функции DxgkDdiPreemptCommand для вытеснения буферов DMA драйвер должен выполнить следующие операции вместо отправки ограждения, определяемого элементом PreemptionFenceIdDXGKARG_PREEMPTCOMMAND на оборудование:
- Вызов IRQL до уровня прерывания. Например, драйвер может вызвать функцию DxgkCbSynchronizeExecution для синхронизации с функцией DxgkDdiInterruptRoutine .
-
Сообщите планировщику GPU сведения о вытеснения. Драйвер может вызвать функцию DxgkCbNotifyInterrupt напрямую или ее функцию DxgkDdiInterruptRoutine (например, если драйвер также должен выполнять другие обновления).
Обратите внимание, что планировщик GPU обрабатывает экземпляры, в которых оборудование перестало отвечать из-за времени ожидания и восстановления (TDR).
- 0x2
- Код ошибки NTSTATUS, возвращенный при сбое вызова драйвера
- Указатель на структуру DXGKARG_PREEMPTCOMMAND
- Указатель на структуру данных внутреннего планировщика
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Целевая платформа | Персональный компьютер |
Верхняя часть | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |