функция обратного вызова 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 в команду забора в конце буфера DMA. Дополнительные сведения об этом элементе см. в предоставлении идентификаторов ограждения.
Если драйвер возвращает код ошибки, подсистема ядра графики Microsoft DirectX вызывает ошибку системы. В файле аварийного дампа ошибка отмечается сообщением BugCheck 0x119, которое имеет следующие четыре параметра.
- 0x3
- Указатель на внутреннюю структуру данных планировщика
- Указатель на внутреннюю структуру данных планировщика
- Указатель на внутреннюю структуру данных планировщика
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows Vista |
целевая платформа | Настольный |
заголовка | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |