D3DDDI_ALLOCATIONINFO 结构描述 WDDM v1 的分配。 用户模式图形客户端应改用 D3DDDI_ALLOCATIONINFO2。
语法
typedef struct _D3DDDI_ALLOCATIONINFO {
D3DKMT_HANDLE hAllocation;
const VOID *pSystemMem;
VOID *pPrivateDriverData;
UINT PrivateDriverDataSize;
D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
union {
struct {
UINT Primary : 1;
UINT Stereo : 1;
#if ...
UINT Reserved : 30;
#else
UINT Reserved : 31;
#endif
};
UINT Value;
} Flags;
} D3DDDI_ALLOCATIONINFO;
成员
hAllocation
[out]表示分配的内核模式句柄的 D3DKMT_HANDLE。 此句柄与 Direct3D 运行时的 pfnAllocateCb 函数在 D3DDDICB_ALLOCATE 结构的 hKMResource 成员中返回的内核模式资源句柄(如果为非 NULL)相关联。 用户模式显示驱动程序可以使用此内核模式分配句柄来引用命令缓冲区中的分配。
pSystemMem
[in]指向 Direct3D 运行时预分配的系统内存的指针。 否则,如果分配是使用视频内存,则此成员为 NULL。
如果分配位于系统内存中,则用户模式显示驱动程序应将资源 D3DDDI_SURFACEINFO 结构的 pSysMem 成员中的缓冲区分配给 pSystemMem。 当 Direct3D 运行时调用用户模式显示驱动程序的 CreateResource 函数来创建资源时,将指定此缓冲区。
pPrivateDriverData
[in/out,opt]指向缓冲区的指针,其中包含显示微型端口驱动程序可能需要用于创建分配的可选专用数据。 显示微型端口驱动程序还可以返回缓冲区中的数据。 当缓冲区的内容传递到显示微型端口驱动程序时,内容必须采用显示微型端口驱动程序可以处理的格式。
PrivateDriverDataSize
[in]私有数据的大小(以字节为单位)。
VidPnSourceId
[in]如果分配用于主图面,则视频演示网络 (VidPN) 拓扑路径中视频演示源的从零开始的 VidPN 标识号。 驱动程序应仅针对主要分配类型设置 VidPnSourceId,而不适用于任何其他类型的分配。 如果驱动程序在调用 pfnAllocateCb 函数时为任何其他分配类型设置 VidPnSourceId,pfnAllocateCb 返回D3DDDI_ID_NOTAPPLICABLE。
当 DirectX 图形内核子系统启动为共享主图面的分配创建时,显示微型端口驱动程序可以从
Flags
[in]一个包含结构或标识分配类型的 32 位值的联合。
Flags.Primary
[in]一个 UINT,指定分配是否是桌面的一部分。 CPU 可隐式访问此类分配。 主分配可以在创建时固定,也可以在创建时未固定。
设置此成员等效于设置 32 位 值 成员的第一位(0x00000001)。
Flags.Stereo
[in]从 Windows 8 开始支持。 一个 UINT,指定分配是否为立体声主分配。 仅当设置 主 成员时,才能设置 立体声 成员。
设置此成员等效于设置 32 位 值 成员的第二位(0x00000002)。
Flags.Reserved
[in]此成员是保留的,应设置为零。
Flags.Value
[in]一个标识分配类型的 32 位值。
注解
当用户模式显示驱动程序在
根据首选项分配分配;否则,分配默认为支持的写入段集,并且写入段集中的所有指定段都必须能够访问 CPU。
显示微型端口驱动程序无法在 标志DXGK_ALLOCATIONINFO成员中设置以下位字段标志:
PermanentSysMem
缓存
保护
ExistingSysMem
ExistingKernelSysMem
D3DDDI_ID_NOTAPPLICABLE常量在 D3dukmdt.h中定义。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista |
标头 | d3dukmdt.h (包括 D3dumddi.h, D3dkmddi.h) |