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 结构的数组。 此数字是驱动程序请求在 DXGKARG_PRESENT 的 pAllocationList 成员中的起始分配数,并在调用驱动程序的 DxgkDdiPresent 和 DxgkDdiRender 函数时DXGKARG_RENDER结构。
创建设备后,分配列表可以增大和收缩;但是,分配列表永远不能收缩小于 AllocationListSize 指定的起始大小。
[out] PatchLocationListSize
修补程序位置数组中的起始元素数 (,即用户模式和内核模式下设备) D3DDDI_PATCHLOCATIONLIST结构的数组 。 此数字是驱动程序在其 DxgkDdiRender 函数的调用中请求位于 DXGKARG_RENDER 结构的 pPatchLocationListIn 成员中的修补程序位置起始数。
创建设备后,修补程序位置列表可以增大和收缩;但是,修补程序位置列表永远不能缩小到 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) |