Export (0) Print
Expand All
Expand Minimize

DXGK_SEGMENTPREFERENCE structure

The DXGK_SEGMENTPREFERENCE structure describes segment preferences that are used to page in an allocation.

Syntax


typedef struct _DXGK_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;
  };
} DXGK_SEGMENTPREFERENCE;

Members

SegmentId0

[out] The identifier of the highest priority preferred segment, or 0 if no preference is required. Valid values are from 1 to 31.

This member is equivalent to the first 5 bits of the 32-bit Value member (0x0000001F).

Direction0

[out] The direction that SegmentId0 should be scanned in to locate a free hole of memory. A value of 0 indicates a bottom-up search (that is, low address to high address), and a value of 1 indicates a top-bottom search (that is, high address to low address).

This member is equivalent to the sixth bit of the 32-bit Value member (0x00000020).

SegmentId1

[out] The identifier of the next highest priority preferred segment, or 0 if no preference is required. Valid values are from 1 to 31.

This member is equivalent to bits 7 through 11 of the 32-bit Value member (0x000007C0).

Direction1

[out] The direction that SegmentId1 should be scanned in to locate a free hole of memory. A value of 0 indicates a bottom-up search (that is, low address to high address), and a value of 1 indicates a top-bottom search (that is, high address to low address).

This member is equivalent to the twelfth bit of the 32-bit Value member (0x00000800).

SegmentId2

[out] The identifier of the next highest priority preferred segment, or 0 if no preference is required. Valid values are from 1 to 31.

This member is equivalent to bits 13 through 17 of the 32-bit Value member (0x0001F000).

Direction2

[out] The direction that SegmentId2 should be scanned in to locate a free hole of memory. A value of 0 indicates a bottom-up search (that is, low address to high address), and a value of 1 indicates a top-bottom search (that is, high address to low address).

This member is equivalent to the eighteenth bit of the 32-bit Value member (0x00020000).

SegmentId3

[out] The identifier of the next highest priority preferred segment, or 0 if no preference is required. Valid values are from 1 to 31.

This member is equivalent to bits 19 through 23 of the 32-bit Value member (0x007C0000).

Direction3

[out] The direction that SegmentId3 should be scanned in to locate a free hole of memory. A value of 0 indicates a bottom-up search (that is, low address to high address), and a value of 1 indicates a top-bottom search (that is, high address to low address).

This member is equivalent to the twenty-fourth bit of the 32-bit Value member (0x00800000).

SegmentId4

[out] The identifier of the next highest priority preferred segment, or 0 if no preference is required. Valid values are from 1 to 31.

This member is equivalent to bits 25 through 29 of the 32-bit Value member (0x1F000000).

Direction4

[out] The direction that SegmentId4 should be scanned in to locate a free hole of memory. A value of 0 indicates a bottom-up search (that is, low address to high address), and a value of 1 indicates a top-bottom search (that is, high address to low address).

This member is equivalent to the thirtieth bit of the 32-bit Value member (0x20000000).

Reserved

[out] This member is reserved and should be set to zero. Setting this member to zero is equivalent to setting the remaining 2 bits (0xC0000000) of the 32-bit Value member to zeros.

Value

[out] A member in the union that DXGK_SEGMENTPREFERENCE contains that can hold a 32-bit value that identifies segment preferences.

Remarks

The display miniport driver can indicate up to five segment preferences in the PreferredSegment member of a DXGK_ALLOCATIONINFO structure when its DxgkDdiCreateAllocation function is called. Preferred-segment identifiers are one-based (that is, the first segment has an identifier of one). An identifier of zero indicates that the driver has no preference.

The highest priority preference is specified in the SegmentId0 member; the lowest priority preference is specified in the SegmentId4 member. The driver can specify less than five preferences by setting the lower priority preferences of segment identifiers to zero. For example, the driver can specify two preferences by setting SegmentId0 and SegmentId1 to valid identifiers and SegmentId2, SegmentId3, and SegmentId4 to zero. The driver can use each DirectionX member to specify the scanning direction for each segment preference independently.

If the video memory manager cannot accommodate the driver's segment preferences from the set in the PreferredSegment member of DXGK_ALLOCATIONINFO, it uses the supported segment set that is specified in the SupportedSegment member of DXGK_ALLOCATIONINFO.

Requirements

Version

Available in Windows Vista and later versions of the Windows operating systems.

Header

D3dkmddi.h (include D3dkmddi.h)

See also

DXGK_ALLOCATIONINFO
DXGK_ALLOCATIONLIST
DXGK_SEGMENTBANKPREFERENCE
DxgkDdiCreateAllocation
DxgkDdiRender

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft