функция обратного вызова DXGKDDI_SUBMITCOMMAND (d3dkmddi.h)
Функция DxgkDdiSubmitCommand отправляет буфер прямого доступа к памяти (DMA) в аппаратную единицу выполнения команд.
Синтаксис
DXGKDDI_SUBMITCOMMAND DxgkddiSubmitcommand;
NTSTATUS DxgkddiSubmitcommand(
[in] IN_CONST_HANDLE hAdapter,
[in] IN_CONST_PDXGKARG_SUBMITCOMMAND pSubmitCommand
)
{...}
Параметры
[in] hAdapter
Дескриптор для блока контекста, связанного с видеоадаптером. Драйвер мини-порта дисплея ранее предоставлял этот дескриптор подсистеме ядра графики Microsoft DirectX в выходном параметре MiniportDeviceContext функции DxgkDdiAddDevice .
[in] pSubmitCommand
Указатель на структуру DXGKARG_SUBMITCOMMAND , описывающую буфер DMA, который драйвер мини-порта дисплея отправляет в аппаратную единицу выполнения команд.
Возвращаемое значение
DxgkDdiSubmitCommand возвращает STATUS_SUCCESS после успешного завершения. Если вместо этого драйвер возвращает код ошибки, операционная система вызывает проверку системной ошибки. См. заметки.
Комментарии
Так как операции подкачки считаются системными, они не связаны с определенным контекстом приложения или графическим контекстом. Таким образом, если отправка выполняется для операции разбиения по страницам, вызывается функция DxgkDdiSubmitCommand с значением NULL , указанным в элементе hDeviceструктуры DXGKARG_SUBMITCOMMAND , на которую указывает параметр pSubmitCommand .
Однако если архитектура конкретного оборудования и драйвера должна иметь устройство внутри системы, драйвер должен внутренне создать устройство во время инициализации адаптера и сохранить устройство внутри в качестве устройства по умолчанию для использования в операциях разбиения по страницам.
Драйвер может записать значение, указанное в элементе SubmissionFenceId DXGKARG_SUBMITCOMMAND, в команду fence в кольцевом буфере. Дополнительные сведения о командах ограждения см. в разделе Предоставление идентификаторов ограждения.
Если драйвер возвращает код ошибки, подсистема ядра графики DirectX вызывает проверку системной ошибки. В файле аварийного дампа ошибка отмечается сообщением BugCheck 0x119, которое будет иметь следующие четыре параметра.
- 0x2 (определяет причину ошибки)
- Код ошибки NTSTATUS, возвращенный при сбое вызова драйвера
- Указатель на структуру DXGKARG_SUBMITCOMMAND
- Указатель на структуру данных внутреннего планировщика
DxgkDdiSubmitCommand должен быть недоступен для страницы, так как он выполняется в IRQL = DISPATCH_LEVEL.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Целевая платформа | Персональный компьютер |
Верхняя часть | d3dkmddi.h |
IRQL | DISPATCH_LEVEL |