Поделиться через


функция обратного вызова DXGKDDI_SUBMITCOMMAND (d3dkmddi.h)

Функция DxgkDdiSubmitCommand отправляет буфер DMA в одну из аппаратных единиц выполнения команд GPU.

Синтаксис

DXGKDDI_SUBMITCOMMAND DxgkddiSubmitcommand;

NTSTATUS DxgkddiSubmitcommand(
  [in] IN_CONST_HANDLE hAdapter,
  [in] IN_CONST_PDXGKARG_SUBMITCOMMAND pSubmitCommand
)
{...}

Параметры

[in] hAdapter

Дескриптор к блоку контекста, связанному с адаптером отображения. Ранее этот дескриптор отображался в dxgkrnl в выходном параметре MiniportDeviceContext функции DxgkDdiAddDevice .

[in] pSubmitCommand

Указатель на структуру DXGKARG_SUBMITCOMMAND , описывающую буфер DMA, который KMD отправляет в аппаратную единицу выполнения команд.

Возвращаемое значение

DxgkDdiSubmitCommand возвращает STATUS_SUCCESS после успешного завершения. Если драйвер возвращает код ошибки, операционная система вызывает ошибку системы. См. примечания.

Замечания

DxgkDdiSubmitCommand работает с адресациями физической памяти, а dxgkDdiSubmitCommandVirtual вызывается с виртуальной памятью.

Поскольку операции разбиения по страницам считаются системными операциями, они не связаны с определенным контекстом приложения или контекстом графики. Поэтому при отправке для операции разбиения по страницам функция DxgkDdiSubmitCommand вызывается с значением NULL, указанным в элементе hDevice структуры DXGKARG_SUBMITCOMMAND , на которую указывает параметр pSubmitCommand .

Однако если архитектура определенного оборудования и драйвера должна иметь устройство внутренне, драйвер должен внутренне создать устройство во время инициализации адаптера и хранить устройство внутри системы в качестве устройства по умолчанию для использования в операциях разбиения по страницам.

Драйвер может записать значение, указанное в элементе SubmissionFenceIdDXGKARG_SUBMITCOMMAND , в команду забора в буфере кольца. Дополнительные сведения о командах ограждения см. в .

Если драйвер возвращает код ошибки, Dxgkrnl приводит к возникновению системной ошибки. В файле аварийного дампа ошибка отмечается сообщением BugCheck 0x119, которое будет иметь следующие четыре параметра.

  • 0x2 (определяет причину ошибки)
  • Код ошибки NTSTATUS, возвращенный из вызова драйвера сбоем
  • Указатель на структуру DXGKARG_SUBMITCOMMAND
  • Указатель на внутреннюю структуру данных планировщика

DxgkDdiSubmitCommand должен быть недоступен, так как он выполняется в IRQL = DISPATCH_LEVEL.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
целевая платформа Настольный
заголовка d3dkmddi.h
IRQL DISPATCH_LEVEL

См. также

DXGKARG_SUBMITCOMMAND

DxgkDdiAddDevice

DxgkDdiRender

DxgkDdiSubmitCommandVirtual