D3DKMT_CREATEALLOCATION 结构 (d3dkmthk.h)

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

语法

typedef struct _D3DKMT_CREATEALLOCATION {
  [in]     D3DKMT_HANDLE                hDevice;
  [in/out] D3DKMT_HANDLE                hResource;
  [out]    D3DKMT_HANDLE                hGlobalShare;
  void                         D3DKMT_PTR(
    const VOID          *unnamedParam1,
    pPrivateRuntimeData unnamedParam2
  );
  [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;
  void                         D3DKMT_PTR(
    HANDLE                        unnamedParam1,
    hPrivateRuntimeResourceHandle unnamedParam2
  );
} D3DKMT_CREATEALLOCATION;

成员

[in] hDevice

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

[in/out] hResource

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

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

[out] hGlobalShare

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

void D3DKMT_PTR( const VOID *unnamedParam1, pPrivateRuntimeData unnamedParam2)

[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结构,用于标识用于在位字段标志中创建分配的属性。

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

void D3DKMT_PTR( HANDLE unnamedParam1, hPrivateRuntimeResourceHandle unnamedParam2)

要求

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

另请参阅

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS