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) |