D3DKMT_RENDER结构(d3dkmthk.h)

D3DKMT_RENDER结构描述要呈现的当前命令缓冲区。

语法

typedef struct _D3DKMT_RENDER {
  union {
    [in]     D3DKMT_HANDLE hDevice;
    [in]     D3DKMT_HANDLE hContext;
  };
  [in]     UINT                                  CommandOffset;
  [in]     UINT                                  CommandLength;
  [in]     UINT                                  AllocationCount;
  [in]     UINT                                  PatchLocationCount;
  [out]    VOID                                  *pNewCommandBuffer;
  [in/out] UINT                                  NewCommandBufferSize;
  [out]    D3DDDI_ALLOCATIONLIST                 *pNewAllocationList;
  [in/out] UINT                                  NewAllocationListSize;
  [out]    D3DDDI_PATCHLOCATIONLIST              *pNewPatchLocationList;
  [in/out] UINT                                  NewPatchLocationListSize;
  [in]     D3DKMT_RENDERFLAGS                    Flags;
  [in]     D3DKMT_ALIGN64 ULONGLONG              PresentHistoryToken;
  [in]     ULONG                                 BroadcastContextCount;
           D3DKMT_HANDLE                         BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  [out]    ULONG                                 QueuedBufferCount;
  [out]    D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS NewCommandBuffer;
           VOID                                  *pPrivateDriverData;
           UINT                                  PrivateDriverDataSize;
} D3DKMT_RENDER;

成员

[in] hDevice

D3DKMT_HANDLE数据类型,表示命令缓冲区呈现给设备的内核模式句柄。 设备句柄提供给联合中的 D3DKMTRender 函数,D3DKMT_RENDER包含与 Microsoft Direct3D 版本 10 兼容。

[in] hContext

D3DKMT_HANDLE数据类型,表示命令缓冲区呈现到的设备上下文的内核模式句柄。

[in] CommandOffset

命令缓冲区中第一个命令的偏移量(以字节为单位)。

[in] CommandLength

从偏移量零开始的命令缓冲区的大小(以字节为单位)。

[in] AllocationCount

提交的分配列表中的元素数。

[in] PatchLocationCount

提交的修补程序位置列表中的元素数。

[out] pNewCommandBuffer

指向 OpenGL ICD 在其下一次调用 D3DKMTRender 函数时使用的命令缓冲区的指针。 无论调用是否成功,驱动程序都必须始终更新其指向命令缓冲区的指针,D3DKMTRender

在 Windows 7 及更高版本中受支持:

[in]如果在 标志 成员中设置 RenderKm 标志,则指向要呈现的命令缓冲区的指针。

[in/out] NewCommandBufferSize

如果 ResizeCommandBuffer 位字段标志在 标志 成员中指定了 OpenGL ICD 请求下一个命令缓冲区的大小(以字节为单位)。 如果未指定 resizeCommandBuffer ,则忽略 newCommandBufferSize 中的值。 在输出中,驱动程序接收要使用的下一个命令缓冲区的大小(以字节为单位)。

根据当前内存条件,输出大小可能与输入大小不匹配。

[out] pNewAllocationList

OpenGL ICD 在其下一次调用 D3DKMTRender 函数时接收用作分配列表的 D3DDDI_ALLOCATIONLIST 结构的数组。 无论调用是否成功,驱动程序都必须始终更新其指向分配列表的指针, D3DKMTRender

在 Windows 7 及更高版本中受支持:

[in]如果在 标志 成员中设置 RenderKm 标志,则指向要呈现的分配列表的指针。

[in/out] NewAllocationListSize

如果 ResizeAllocationList 位字段标志在 标志 成员中指定 OpenGL ICD 请求下一个分配列表的元素数。 如果未指定 resizeAllocationList ,则忽略 newAllocationListSize 中的值 。 在输出中,驱动程序在提交下一个命令缓冲区时接收将在分配数组中可用的元素数。

根据当前内存条件,输出大小可能与输入大小不匹配。

[out] pNewPatchLocationList

OpenGL ICD 在其下一次调用 D3DKMTRender 函数时接收用作修补位置列表的 D3DDDI_PATCHLOCATIONLIST 结构的数组。 无论调用是否成功,驱动程序都必须始终更新指向修补程序位置列表的指针, D3DKMTRender

[in/out] NewPatchLocationListSize

如果 ResizePatchLocationList 位字段标志在 标志 成员中指定了 OpenGL ICD 请求下一个修补位置列表的元素数。 如果未指定 resizePatchLocationList ,则忽略 newPatchLocationListSize 中的值。 在输出中,驱动程序在提交下一个命令缓冲区时接收将在修补程序位置数组中可用的元素数。

根据当前内存条件,输出大小可能与输入大小不匹配。

[in] Flags

一个 D3DKMT_RENDERFLAGS 结构,指示要呈现的位字段标志中的命令缓冲区的类型。

[in] PresentHistoryToken

用于重定向到显示微型端口驱动程序 DxgkDdiPresent 函数的重定向调用的历史记录令牌。

呈现历史记录令牌 是呈现应用提交的数据包,告知桌面窗口管理器(DWM)呈现已完成,交换链后缓冲区已准备好呈现。

[in] BroadcastContextCount

BroadcastContext 指定的数组中的其他上下文数。

[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

一个由D3DKMT_HANDLE数据类型构成的数组,这些数据类型表示内核模式句柄的附加上下文,用于将当前命令缓冲区广播到该数组。 D3DDDI_MAX_BROADCAST_CONTEXT常量(定义为 64)定义 OpenGL ICD 可将当前命令缓冲区广播到的最大上下文数。

hContext 成员指定且拥有命令缓冲区的原始上下文不是 BroadcastContext 数组中的元素。 例如,如果 BroadcastContext 数组包含一个元素,则 OpenGL ICD 会将命令缓冲区发送到拥有上下文(hContext)并广播到该另一个上下文。

[out] QueuedBufferCount

hContext 成员在提交后指定的上下文中排队的 DMA 缓冲区数。

[out] NewCommandBuffer

指向 OpenGL ICD 在其下一次调用 D3DKMTRender 函数时使用的命令缓冲区的指针。 无论调用是否成功,驱动程序都必须始终更新其指向命令缓冲区的指针,D3DKMTRender

在 Windows 7 及更高版本中受支持:

[in]如果在 标志 成员中设置 RenderKm 标志,则指向要呈现的命令缓冲区的指针。

pPrivateDriverData

此成员是保留的,应设置为零。

此成员从 Windows 7 开始可用。

PrivateDriverDataSize

此成员是保留的,应设置为零。

此成员从 Windows 7 开始可用。

要求

要求 价值
最低支持的客户端 Windows Vista
标头 d3dkmthk.h (包括 D3dkmthk.h)

另请参阅

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent