DXGKDDI_SUBMITCOMMAND回调函数 (d3dkmddi.h)

DxgkDdiSubmitCommand 函数将直接内存访问 (DMA) 缓冲区提交到硬件命令执行单元。

语法

DXGKDDI_SUBMITCOMMAND DxgkddiSubmitcommand;

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

参数

[in] hAdapter

与显示适配器关联的上下文块的句柄。 显示微型端口驱动程序之前在 DxgkDdiAddDevice 函数的 MiniportDeviceContext 输出参数中向 Microsoft DirectX 图形内核子系统提供了此句柄。

[in] pSubmitCommand

指向 DXGKARG_SUBMITCOMMAND 结构的指针,该结构描述显示微型端口驱动程序提交到硬件命令执行单元的 DMA 缓冲区。

返回值

DxgkDdiSubmitCommand 在成功完成后返回 STATUS_SUCCESS 。 如果驱动程序改为返回错误代码,则操作系统会导致系统进行 bug 检查。 请参阅“备注”。

注解

由于分页操作被视为系统操作,因此它们不与特定的应用程序上下文或图形上下文相关联。 因此,当提交用于分页操作时,将调用 DxgkDdiSubmitCommand 函数,并在 pSubmitCommand 参数指向的 DXGKARG_SUBMITCOMMAND 结构的 hDevice 成员中指定 NULL

但是,如果特定硬件和驱动程序的体系结构必须在内部具有设备,则驱动程序必须在适配器初始化期间在内部创建设备,并且必须在内部将设备保留为系统默认设备,以便在分页操作中使用。

驱动程序可以将 DXGKARG_SUBMITCOMMAND 的 SubmissionFenceId 成员中提供的值写入环形缓冲区中的 fence 命令。 有关围栏命令的详细信息,请参阅 提供围栏标识符

如果驱动程序返回错误代码,DirectX 图形内核子系统会导致系统进行 bug 检查。 在故障转储文件中, 错误由消息 BugCheck 0x119指出,该消息将具有以下四个参数。

  • 0x2 (确定错误原因)
  • 从失败的驱动程序调用返回的 NTSTATUS 错误代码
  • 指向 DXGKARG_SUBMITCOMMAND 结构的指针
  • 指向内部计划程序数据结构的指针

应使 DxgkDdiSubmitCommand 不可分页,因为它在 IRQL = DISPATCH_LEVEL运行。

要求

要求
最低受支持的客户端 Windows Vista
目标平台 桌面
标头 d3dkmddi.h
IRQL DISPATCH_LEVEL

另请参阅

DXGKARG_SUBMITCOMMAND

DxgkDdiAddDevice