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。 此成员相当于 成员的位 25 到 29 位。

Direction4

设置为零,指示 VidMm 选择要从中执行分配的 SegmentId4 的末尾。 此成员等效于 成员的第 30 位。

Reserved

保留(位 31-32)。

Value

访问段首选项信息的替代方法。

言论

分配内存时,将使用段首选项。 当用户模式(例如,D3D 运行时)调用 D3DKMTCreateAllocation时,UMD 会提供描述分配的专用驱动程序数据。 Dxgkrnl 获取此专用驱动程序数据,并将其传递给 KMD,然后以 VidMm理解的方式填写每个分配的说明。 UMD 数据包含资源类型(纹理、交换链等)等信息。 KMD 将此数据转换为大小、对齐方式、分配可以定位的一组内存段、这些段的首选项(如此结构所示),等等。

要求

要求 价值
标头 d3dukmdt.h

另请参阅

D3DKMTCreateAllocation

D3DKMTUpdateAllocationProperty