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

另请参阅

D3DKMTCreateAllocation

D3DKMTUpdateAllocationProperty