функция обратного вызова DXGKDDI_PATCH (d3dkmddi.h)
Функция DxgkDdiPatch назначает физические адреса заданному буферу прямого доступа к памяти (DMA) перед отправкой буфера DMA на графическое оборудование.
Синтаксис
DXGKDDI_PATCH DxgkddiPatch;
NTSTATUS DxgkddiPatch(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_PATCH pPatch
)
{...}
Параметры
[in] hAdapter
Дескриптор для блока контекста, связанного с видеоадаптером. Драйвер мини-порта дисплея ранее предоставлял этот дескриптор подсистеме ядра графики Microsoft DirectX в выходном параметре MiniportDeviceContext функции DxgkDdiAddDevice .
[in] pPatch
Указатель на структуру DXGKARG_PATCH , описывающую буфер DMA для исправления с помощью физических адресов.
Возвращаемое значение
Возвращает STATUS_SUCCESS после успешного завершения. Если вместо этого драйвер возвращает код ошибки, операционная система вызывает проверку системных ошибок. Дополнительные сведения см. в разделе "Примечания".
Комментарии
Функция DxgkDdiPatch должна назначать физические адреса буферу DMA на месте. Таким образом, когда драйвер мини-порта дисплея создает буфер DMA, драйвер должен убедиться, что в буфере DMA есть свободное место для вставки инструкций, необходимых для обработки физических адресов. Обратите внимание, что физические адреса могут соответствовать видеопамять, памяти AGP/PCI Express или системной памяти.
Драйвер должен изучить предоставленный список расположения исправлений в элементе pPatchLocationListструктуры DXGKARG_PATCH , на которую указывает параметр pPatch , чтобы определить места в буфере DMA, которые должны быть исправлены с помощью физических адресов. Предоставленный список выделения (который задается членом pAllocationList DXGKARG_PATCH) также содержит физические адреса, создаваемые диспетчером видеопамяли. Вызов функции DxgkDdiPatch драйвера является последним шансом для драйвера изменить содержимое буфера DMA перед отправкой буфера DMA в графический процессор (GPU). Обратите внимание, что драйвер может исправить буфер DMA несколько раз в сценариях, когда буфер DMA вытеснен.
Драйвер может исправить значение, указанное в элементе SubmissionFenceId DXGKARG_PATCH в команду fence в конце буфера DMA. Дополнительные сведения об этом элементе см. в разделе Предоставление идентификаторов ограждения.
Если драйвер возвращает код ошибки, подсистема графического ядра Microsoft DirectX вызывает проверку системных ошибок. В файле аварийного дампа ошибка отмечается сообщением BugCheck 0x119, которое имеет следующие четыре параметра.
- 0x3
- Указатель на структуру данных внутреннего планировщика
- Указатель на структуру данных внутреннего планировщика
- Указатель на структуру данных внутреннего планировщика
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Целевая платформа | Персональный компьютер |
Верхняя часть | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |