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

指向命令缓冲区开头的指针。

注意 调用 DxgkDdiRender 时,显示微型端口驱动程序必须验证缓冲区。 有关驱动程序应如何访问此成员的重要信息,请参阅 DxgkDdiRender 中的备注。
 

[in] CommandLength

pCommand 指向的命令缓冲区的大小(以字节为单位)。

[out] pDmaBuffer

指向 DMA 缓冲区开头的指针,该缓冲区以 4 KB 对齐。 可以通过 DMA 将此缓冲区发送到图形硬件。 在显示微型端口驱动程序从 DxgkDdiRenderDxgkDdiRenderKm 函数返回之前,驱动程序应将 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结构数组。

注意 调用 DxgkDdiRender 时,显示微型端口驱动程序必须验证缓冲区。 有关驱动程序应如何访问此成员的重要信息,请参阅 DxgkDdiRender 中的备注。
 

[in] PatchLocationListInSize

pPatchLocationListIn 指定的修补程序位置列表中的元素数。

[in/out] pPatchLocationListOut

显示微型端口驱动程序填充的修补程序位置列表的 D3DDDI_PATCHLOCATIONLIST 结构的数组。 在驱动程序从对其 DxgkDdiRenderDxgkDdiRenderKm 函数的调用返回之前,驱动程序必须将 pPatchLocationListOut 设置为驱动程序更新的最后一个 D3DDDI_PATCHLOCATIONLIST 元素之后的下一 个D3DDDI_PATCHLOCATIONLIST 元素。

[in] PatchLocationListOutSize

pPatchLocationListOut 指定的修补程序位置列表中的元素数。 显示微型端口驱动程序不需要填充整个列表中的所有元素;驱动程序必须仅使用描述 DMA 缓冲区内修补程序位置所需的元素。

[in/out] MultipassOffset

一个 UINT 值,该值指定显示微型端口驱动程序的 DxgkDdiRenderDxgkDdiRenderKm 函数必须返回 STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER 以获取新的 DMA 缓冲区时呈现操作的进度。 首次使用新的命令缓冲区调用驱动程序的 DxgkDdiRenderDxgkDdiRenderKm 函数时, MultipassOffset 初始化为零。 在驱动程序从 DxgkDdiRender 或 DxgkDdiRenderKm 调用返回之前,驱动程序会将此成员设置为显示具有相同命令缓冲区的后续 DxgkDdiRenderDxgkDdiRenderKm 调用的转换进度。 DirectX 图形内核子系统不会进一步更改该值。

[in] DmaBufferSegmentId

DMA 缓冲区分页的内存段的标识符。 如果标识符为零,则 DMA 缓冲区未正确分页。

[in] DmaBufferPhysicalAddress

PHYSICAL_ADDRESS数据类型 (定义为指示 DMA 缓冲区分页的物理地址LARGE_INTEGER) 。 如果物理地址为零,则 DMA 缓冲区未正确分页。

注解

从 Windows 7 开始,为支持 GDI 硬件加速的显示适配器添加了对 DxgkDdiRenderKm 函数的支持。

要求

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

另请参阅

D3DDDI_PATCHLOCATIONLIST

DXGK_ALLOCATIONLIST

DxgkDdiRender

DxgkDdiRenderKm

pfnRenderCb