DXGK_CONTEXTINFO结构(d3dkmddi.h)

DXGK_CONTEXTINFO结构描述设备上下文。

语法

typedef struct _DXGK_CONTEXTINFO {
  UINT                  DmaBufferSize;
  UINT                  DmaBufferSegmentSet;
  UINT                  DmaBufferPrivateDataSize;
  UINT                  AllocationListSize;
  UINT                  PatchLocationListSize;
  UINT                  Reserved;
  DXGK_CONTEXTINFO_CAPS Caps;
  ULONG                 PagingCompanionNodeId;
} DXGK_CONTEXTINFO;

成员

DmaBufferSize

通过直接内存访问(DMA)发送到图形处理单元(GPU)的硬件命令缓冲区的大小(以字节为单位)。

创建上下文后,DMA 缓冲区可以增大和收缩;但是,DMA 缓冲区永远不能收缩小于 DmaBufferSize 指定的起始大小。

DmaBufferSegmentSet

DMA 缓冲区应可供 GPU 访问的段的标识符。

DmaBufferPrivateDataSize

与每个 DMA 缓冲区关联的驱动程序驻留专用数据结构的大小(以字节为单位)。 此专用数据结构的内存是从非分页池分配的。 如果驱动程序在 DmaBufferPrivateDataSize中指定零,则不会为专用数据结构分配内存。

创建 DMA 缓冲区时,与 DMA 缓冲区关联的专用数据结构初始化为零。 在 DMA 缓冲区的生存期内,视频内存管理器永远不会访问与 DMA 缓冲区关联的专用数据结构。

AllocationListSize

分配数组中的起始元素数(即 DXGK_ALLOCATIONLIST 结构的数组)。 此数字是驱动程序请求在 pAllocationList 中DXGKARG_PRESENT 成员和 DXGKARG_RENDER 结构中调用驱动程序 DxgkDdiPresentDxgkDdiRender 函数的开始分配数。

创建上下文后,分配列表可能会增大和收缩;但是,分配列表永远不能小于 AllocationListSize 指定的起始大小。

注意 如果 DXGK_CREATECONTEXTFLAGSGdiContext 设置为 1,这意味着上下文创建为特定于 GDI 的上下文,AllocationListSize 必须设置为值 256。
 

PatchLocationListSize

在用户模式和内核模式中,设备的修补程序位置数组(即 D3DDDI_PATCHLOCATIONLIST 结构数组)中的起始元素数。 此数字是驱动程序请求位于 pPatchLocationListInDXGKARG_RENDER 结构的成员调用其 DxgkDdiRender 函数的起始补丁位置数。

创建上下文后,修补程序位置列表可以增长和收缩;但是,修补位置列表永远无法缩小 PatchLocationListSize 指定的起始大小。

Reserved

此成员是保留的,应设置为零。

此成员从 Windows 7 开始可用。

Caps

介绍上下文支持的可选功能。

从 Windows 10 开始支持。

PagingCompanionNodeId

指定要用于此上下文分页配套的引擎的从零开始的引擎标识符。

从 Windows 10 开始支持。

言论

显示微型端口驱动程序指定 DmaBufferSizeAllocationListSize 成员的值,以确保:

  • Microsoft DirectX 图形子系统只能使用一个直接内存访问(DMA)缓冲区来显示(通过使用显示微型端口驱动程序的 DxgkDdiPresent 函数)来显示所有方案的至少一个 RECT 结构。
  • DMA 和分配列表缓冲区的大小足以容纳至少一个不能跨多个缓冲区拆分的命令。
  • DMA 和分配列表缓冲区的大小足够大,以避免设置和 DMA 开销。
显示微型端口驱动程序只能在 DmaBufferSegmentSet 成员中指定光圈段;如果驱动程序指定内存段,则会发生上下文创建失败。

如果驱动程序将 DmaBufferSegmentSet 设置为 0,则视频内存管理器将为 DMA 缓冲区分配连续的分页锁定内存,该内存映射为写入组合内存。 因此,GPU 必须在不允许 AGP 光圈外发生的 AGP 传输的计算机上使用 PCI 周期来访问 DMA 缓冲区。

要求

要求 价值
最低支持的客户端 Windows Vista
标头 d3dkmddi.h (包括 D3dkmddi.h)

另请参阅

D3DDDI_PATCHLOCATIONLIST

DXGKARG_CREATECONTEXT

DXGKARG_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_CREATECONTEXTFLAGS

DxgkDdiPresent

DxgkDdiRender

RECT