D3DDDI_SEGMENTPREFERENCE 结构 (d3dukmdt.h)
D3DDI_SEGMENTPREFERENCE结构描述要创建的此分配的首选段。
typedef struct _D3DDDI_SEGMENTPREFERENCE {
union {
struct {
UINT SegmentId0 : 5;
UINT Direction0 : 1;
UINT SegmentId1 : 5;
UINT Direction1 : 1;
UINT SegmentId2 : 5;
UINT Direction2 : 1;
UINT SegmentId3 : 5;
UINT Direction3 : 1;
UINT SegmentId4 : 5;
UINT Direction4 : 1;
UINT Reserved : 2;
};
UINT Value;
};
} D3DDDI_SEGMENTPREFERENCE;
SegmentId0
优先级最高的首选段的标识符;如果不需要首选段,则为零。 有效值为 0 到 31。 此成员等效于 Value 成员的前 5 位。
Direction0
设置为零表示 VidMm 选择要从 哪个 SegmentId0 端执行分配。 此成员等效于 Value 成员的第六位。
SegmentId1
下一个最高优先级首选段的标识符;如果不需要首选段,则为零。 有效值为 0 到 31。 此成员等效于 Value 成员的第 7 位到第 11 位。
Direction1
设置为零以指示 VidMm 选择要从 哪个部分的 SegmentId1 端执行分配。 此成员等效于 Value 成员的第 12 位。
SegmentId2
下一个最高优先级首选段的标识符;如果不需要首选段,则为零。 有效值为 0 到 31。 此成员相当于 Value 成员的第 13 到 17 位。
Direction2
设置为零表示 VidMm 选择要从哪个 SegmentId2 端执行分配。 此成员等效于 Value 成员的第 18 位。
SegmentId3
下一个最高优先级首选段的标识符;如果不需要首选段,则为零。 有效值为 0 到 31。 此成员等效于 Value 成员的第 19 到 23 位。
Direction3
设置为零以指示 VidMm 选择要从哪个 部分的 SegmentId3 端执行分配。 此成员等效于 Value 成员的第 24 位。
SegmentId4
下一个最高优先级首选段的标识符;如果不需要首选段,则为零。 有效值为 0 到 31。 此成员等效于 Value 成员的第 25 到 29 位。
Direction4
设置为零以指示 VidMm 选择要从 哪个 SegmentId4 端执行分配。 此成员等效于 Value 成员的第 30 位。
Reserved
保留 (位 31-32) 。
Value
访问段首选项信息的替代方法。
分配内存时使用段首选项。 例如,当用户模式 (时,D3D 运行时) 调用 D3DKMTCreateAllocation,UMD 将提供描述分配的专用驱动程序数据。 Dxgkrnl 获取此专用驱动程序数据并将其传递给 KMD,KMD 然后以 VidMm 理解的方式填写每个分配的说明。 UMD 数据包含资源类型 (纹理、交换链等信息) 。 KMD 将此数据转换为大小、对齐方式、分配可以定位的一组内存段、这些段的首选项 (,如此结构) 所示,等等。
要求 | 值 |
---|---|
Header | d3dukmdt.h |