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 结构调用驱动程序 DxgkDdiPresent 和 DxgkDdiRender 函数的开始分配数。
创建设备后,分配列表可能会增大和缩小;但是,分配列表永远不能小于 AllocationListSize 指定的起始大小。
[out] PatchLocationListSize
在用户模式和内核模式中,设备的修补程序位置数组(即 D3DDDI_PATCHLOCATIONLIST 结构数组)中的起始元素数。 此数字是驱动程序请求位于 pPatchLocationListInDXGKARG_RENDER 结构的成员调用其 DxgkDdiRender 函数的起始补丁位置数。
创建设备后,修补程序位置列表可能会增大和缩小;但是,修补位置列表永远无法缩小 PatchLocationListSize 指定的起始大小。
[out] Flags
一个 DXGK_DEVICEINFOFLAGS 结构,用于标识有关设备的信息(在位字段标志中)。
言论
显示微型端口驱动程序指定 DmaBufferSize 和 AllocationListSize 成员的值,以确保以下内容:
- DirectX 图形子系统只能使用一个 DMA 缓冲区来显示(通过使用显示微型端口驱动程序的 dxgkDdiPresent 函数)为所有方案至少一个 RECT 结构。
- DMA 和分配列表缓冲区的大小足以容纳至少一个不能跨多个缓冲区拆分的命令。
- DMA 和分配列表缓冲区的大小足够大,以避免设置和 DMA 开销。
如果驱动程序将 DmaBufferSegmentSet 设置为 0,则视频内存管理器将为 DMA 缓冲区分配连续的分页锁定内存,该内存映射为写入组合内存。 因此,GPU 必须在不允许 AGP 光圈外发生的 AGP 传输的系统上使用 PCI 周期来访问 DMA 缓冲区。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista |
标头 | d3dkmddi.h (包括 D3dkmddi.h) |