DXGK_SEGMENTBANKPREFERENCE structure (d3dkmddi.h)

The DXGK_SEGMENTBANKPREFERENCE structure describes bank preferences for paging in an allocation.

Syntax

typedef struct _DXGK_SEGMENTBANKPREFERENCE {
  union {
    struct {
      UINT Bank0 : 7;
      UINT Direction0 : 1;
      UINT Bank1 : 7;
      UINT Direction1 : 1;
      UINT Bank2 : 7;
      UINT Direction2 : 1;
      UINT Bank3 : 7;
      UINT Direction3 : 1;
    };
    [out] UINT Value;
  };
} DXGK_SEGMENTBANKPREFERENCE;

Members

[out] Bank0

The identifier of the highest priority preferred bank, or 0 if no preference is required. Valid values are from 1 to 127.

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

[out] Direction0

The direction in which Bank0 should be scanned to locate a free area 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 eighth bit of the 32-bit Value member (0x00000080).

[out] Bank1

The identifier of the next highest priority preferred bank, or 0 if no preference is required. Valid values are from 1 to 127.

This member is equivalent to bits 9 through 15 of the 32-bit Value member (0x00007F00).

[out] Direction1

The direction in which Bank1 should be scanned 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 sixteenth bit of the 32-bit Value member (0x00008000).

[out] Bank2

The identifier of the next highest priority preferred bank, or 0 if no preference is required. Valid values are from 1 to 127.

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

[out] Direction2

The direction in which Bank2 should be scanned 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).

[out] Bank3

The identifier of the next highest priority preferred bank, or 0 if no preference is required. Valid values are from 1 to 127.

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

[out] Direction3

The direction in which Bank3 should be scanned 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 thirty-secondbit of the 32-bit Value member (0x80000000).

[out] Value

A member in the union that DXGK_SEGMENTBANKPREFERENCE contains that can hold a 32-bit value that identifies bank preferences.

Remarks

The display miniport driver can indicate up to four bank preferences in the HintedBank member of a DXGK_ALLOCATIONINFO structure when the driver's DxgkDdiCreateAllocation function is called. Preferred-bank identifiers are one-based (that is, the first bank has an identifier of one). An identifier of zero indicates that the driver has no preference. The highest priority preference is specified in the Bank0 member; the lowest priority preference is specified in the Bank3 member. The driver can specify less than four preferences by setting the lower priority preferences of bank identifiers to zero. For example, the driver can specify two preferences by setting Bank0 and Bank1 to valid identifiers and Bank2 and Bank3 to zero. The driver can use each DirectionX member to specify the scanning direction for each bank preference independently.

The video memory manager allocates resources from preferred segments that the PreferredSegment member of DXGK_ALLOCATIONINFO specifies.

Requirements

Requirement Value
Minimum supported client Windows Vista
Header d3dkmddi.h (include D3dkmddi.h)

See also

DXGK_ALLOCATIONINFO

DXGK_ALLOCATIONLIST

DXGK_SEGMENTPREFERENCE

DxgkDdiCreateAllocation

DxgkDdiRender