DXGKARG_RENDER结构(d3dkmddi.h)
DXGKARG_RENDER结构描述用于从命令缓冲区生成直接内存访问(DMA)缓冲区的成员。
语法
typedef struct _DXGKARG_RENDER {
[in] const VOID *pCommand;
[in] UINT CommandLength;
[out] VOID *pDmaBuffer;
[in] UINT DmaSize;
[in] VOID *pDmaBufferPrivateData;
[in] UINT DmaBufferPrivateDataSize;
[in] DXGK_ALLOCATIONLIST *pAllocationList;
[in] UINT AllocationListSize;
[in] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListIn;
[in] UINT PatchLocationListInSize;
[in/out] D3DDDI_PATCHLOCATIONLIST *pPatchLocationListOut;
[in] UINT PatchLocationListOutSize;
[in/out] UINT MultipassOffset;
[in] UINT DmaBufferSegmentId;
[in] PHYSICAL_ADDRESS DmaBufferPhysicalAddress;
} DXGKARG_RENDER;
成员
[in] pCommand
指向命令缓冲区开头的指针。
[in] CommandLength
pCommand 指向的命令缓冲区的大小(以字节为单位)。
[out] pDmaBuffer
指向 DMA 缓冲区开头的指针,该缓冲区在 4 KB 上对齐。 可以通过 DMA 将此缓冲区发送到图形硬件。 在显示微型端口驱动程序从 DxgkDdiRender 或 DxgkDdiRenderKm 函数返回之前,驱动程序应将 pDmaBuffer 设置为驱动程序写入的最后一个字节之后的下一个空字节,或者驱动程序应指向位置(缓冲区空间之外的一个字节),前提是没有更多空间可用。 如果缓冲区足够大,则此位置是正确的。
[in] DmaSize
pDmaBuffer 指向的 DMA 缓冲区的大小(以字节为单位)。
[in] pDmaBufferPrivateData
指向驱动程序驻留的专用数据结构的指针,该结构用于生成 pDmaBuffer 指向的 DMA 缓冲区。
[in] DmaBufferPrivateDataSize
pDmaBufferPrivateData 指向当前作的专用数据结构中保留的字节数。
[in] pAllocationList
DMA 缓冲区引用的分配列表的 DXGK_ALLOCATIONLIST 结构的数组。 应显示引用的每个分配一次,以获得最佳性能。
[in] AllocationListSize
pAllocationList 数组中的可用元素数,表示要通过 DMA 发送到图形硬件的分配规范数。
[in] pPatchLocationListIn
用户模式显示驱动程序在调用 pfnRenderCb 函数时提供的修补程序位置列表 D3DDDI_PATCHLOCATIONLIST 结构数组。
[in] PatchLocationListInSize
pPatchLocationListIn 指定的修补程序位置列表中的元素数。
[in/out] pPatchLocationListOut
显示微型端口驱动程序填充的修补程序位置列表 D3DDDI_PATCHLOCATIONLIST 结构的数组。 在驱动程序从调用其 DxgkDdiRender 或 DxgkDdiRenderKm 函数返回之前,驱动程序必须将 pPatchLocationListOut 设置为驱动程序更新的最后一个 D3DDDI_PATCHLOCATIONLIST 元素后面的下一个 D3DDDI_PATCHLOCATIONLIST 元素。
[in] PatchLocationListOutSize
pPatchLocationListOut 指定的修补程序位置列表中的元素数。 显示微型端口驱动程序不需要填充整个列表中的所有元素;驱动程序只能使用描述 DMA 缓冲区中修补程序位置所必需的元素。
[in/out] MultipassOffset
如果显示微型端口驱动程序的 DxgkDdiRender 或 DxgkDdiRenderKm 函数必须返回 STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER 以获取新的 DMA 缓冲区,则指定呈现作的 UINT 值。 当驱动程序的 DxgkDdiRender 或 DxgkDdiRenderKm 函数首次使用新的命令缓冲区调用时,MultipassOffset 初始化为零。 在驱动程序从 DxgkDdiRender 或 DxgkDdiRenderKm 调用返回之前,驱动程序将设置此成员以显示后续 DxgkDdiRender 或 DxgkDdiRenderKm 调用的转换进度。 DirectX 图形内核子系统不会进一步更改该值。
[in] DmaBufferSegmentId
分页 DMA 缓冲区的内存段的标识符。 如果标识符为零,则 DMA 缓冲区未正确分页。
[in] DmaBufferPhysicalAddress
PHYSICAL_ADDRESS 数据类型(定义为 LARGE_INTEGER),指示 DMA 缓冲区在其中分页的物理地址。 如果物理地址为零,则 DMA 缓冲区未正确分页。
言论
从 Windows 7 开始,添加了对支持 DxgkDdiRenderKm 函数的支持,用于支持 GDI 硬件加速的显示适配器。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista |
标头 | d3dkmddi.h (包括 D3dkmddi.h) |