D3DKMT_CREATEALLOCATION结构(d3dkmthk.h)

D3DKMT_CREATEALLOCATION 结构描述创建分配的参数。

语法

typedef struct _D3DKMT_CREATEALLOCATION {
  [in]     D3DKMT_HANDLE                hDevice;
  [in/out] D3DKMT_HANDLE                hResource;
  [out]    D3DKMT_HANDLE                hGlobalShare;
  [in]     const VOID                   *pPrivateRuntimeData;
  [in]     UINT                         PrivateRuntimeDataSize;
  union {
    [in]     D3DKMT_CREATESTANDARDALLOCATION *pStandardAllocation;
    [in]     const VOID                      *pPrivateDriverData;
  };
  [in/out] UINT                         PrivateDriverDataSize;
  [in]     UINT                         NumAllocations;
  union {
    [in]     D3DDDI_ALLOCATIONINFO  *pAllocationInfo;
    [in]     D3DDDI_ALLOCATIONINFO2 *pAllocationInfo2;
  };
  [in]     D3DKMT_CREATEALLOCATIONFLAGS Flags;
  [in]     HANDLE                       hPrivateRuntimeResourceHandle;
} D3DKMT_CREATEALLOCATION;

成员

[in] hDevice

与资源或分配关联的设备的句柄。

[in/out] hResource

D3DKMT_HANDLE数据类型,表示与分配关联的资源的内核模式句柄。 除非将分配添加到现有资源,否则 hResource 中的值应始终为零,在这种情况下,hResource 包含资源句柄。

标志 成员中设置 CreateResource 位字段标志时,OpenGL 运行时将生成唯一句柄并将其传回驱动程序。 在 D3DKMTCreateAllocation 函数的输出中,hResource 指定驱动程序应在后续 OpenGL 运行时调用中使用的句柄来标识资源。 返回的资源句柄特定于设备,并且仅在与创建它的设备一起使用时才有效。

[out] hGlobalShare

用户模式客户端驱动程序不应使用全局句柄共享资源。 驱动程序应在 标志 中设置 NtSecuritySharing,并调用 D3DKMTShareObjects 以获取 NT 句柄。 使用全局句柄不安全。 任何进程都可以猜测全局句柄并打开共享对象。 仅出于与旧 D3D 运行时的兼容性原因,才支持全局句柄。 (如果未设置 NtSecuritySharing,则 hGlobalShare中返回全局句柄。没有什么能阻止 UMD 使用全局句柄共享资源,但驱动程序不应这样做。

[in] pPrivateRuntimeData

指向可附加到资源的可选专用数据的指针,用于调试。 此数据按资源而不是按分配。

[in] PrivateRuntimeDataSize

pPrivateRuntimeData 指向的专用数据的大小(以字节为单位)。

[in] pStandardAllocation

指向描述要创建的标准分配的 D3DKMT_CREATESTANDARDALLOCATION 结构的指针。

[in] pPrivateDriverData

指向包含显示微型端口驱动程序可能需要创建资源或分配的可选专用数据的缓冲区的指针。 缓冲区的内容通常来自 ICD,并且必须采用显示微型端口驱动程序可以处理的格式。

[in/out] PrivateDriverDataSize

pPrivateDriverData 指向的专用数据的大小(以字节为单位)。

[in] NumAllocations

pAllocationInfo 指定的数组中的元素数,表示要创建的分配数。 请注意,创建资源时,最初没有任何与其关联的分配有效;因此,NumAllocations 可以设置为 0。

[in] pAllocationInfo

一个由 D3DDDI_ALLOCATIONINFO 结构构成的数组,用于描述要创建的每个分配的特定属性。

[in] pAllocationInfo2

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

此成员从 Windows 7 开始可用。

[in] Flags

一个 D3DKMT_CREATEALLOCATIONFLAGS 结构,用于标识用于在位字段标志中创建分配的属性。

如果在 标志中设置 CreateShared 位字段标志,则还必须设置 CreateResource 位字段标志。

[in] hPrivateRuntimeResourceHandle

可用于事件跟踪的不透明句柄。 分析 Windows 事件跟踪(ETW)事件日志时,此句柄可用于将内核模式分配与用户模式图面指针相关联。

要求

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

另请参阅

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS