функция обратного вызова 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, Драйвер должен выполнять следующие операции вместо отправки забора, определяемого PreemptionFenceId члена DXGKARG_PREEMPTCOMMAND на оборудование:
- Вызов IRQL на уровень прерывания. Например, драйвер может вызвать функцию DxgkCbSynchronizeExecution для синхронизации с функцией DxgkDdiInterruptRoutine.
-
Сообщите планировщику GPU о сведениях о преимпции. Драйвер может вызывать функцию DxgkCbNotifyInterrupt напрямую или вызывать ее функцию DxgkDdiInterruptRoutine (например, если драйвер должен выполнять другие обновления.
Обратите внимание, что планировщик GPU обрабатывает экземпляры, в которых оборудование перестало отвечать из-за работы обнаружения времени ожидания и восстановления (TDR).
- 0x2
- Код ошибки NTSTATUS, возвращенный из вызова драйвера сбоем
- Указатель на структуру DXGKARG_PREEMPTCOMMAND
- Указатель на внутреннюю структуру данных планировщика
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista |
целевая платформа | Настольный |
заголовка | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |