DXGK_DEVICEINFO结构(d3dkmddi.h)

DXGK_DEVICEINFO结构描述显示微型端口驱动程序Microsoft DirectX 图形内核子系统所需的参数。

语法

typedef struct _DXGK_DEVICEINFO {
  [out] UINT                 DmaBufferSize;
  [out] UINT                 DmaBufferSegmentSet;
  [out] UINT                 DmaBufferPrivateDataSize;
  [out] UINT                 AllocationListSize;
  [out] UINT                 PatchLocationListSize;
  [out] DXGK_DEVICEINFOFLAGS Flags;
} DXGK_DEVICEINFO;

成员

[out] DmaBufferSize

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

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

[out] DmaBufferSegmentSet

DMA 缓冲区应可供图形处理单元(GPU)访问的段的标识符。

[out] DmaBufferPrivateDataSize

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

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

[out] AllocationListSize

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

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

[out] PatchLocationListSize

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

创建设备后,修补程序位置列表可能会增大和缩小;但是,修补位置列表永远无法缩小 PatchLocationListSize 指定的起始大小。

[out] Flags

一个 DXGK_DEVICEINFOFLAGS 结构,用于标识有关设备的信息(在位字段标志中)。

言论

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

  • 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_PRESENT

DXGKARG_RENDER

DXGK_ALLOCATIONLIST

DXGK_DEVICEINFOFLAGS

DxgkDdiCreateDevice

DxgkDdiPresent

DxgkDdiRender