Dividing a Memory-Space Segment into Banks
The display miniport driver can provide fine-grained hints to the video memory manager about the optimal placement for allocations of video resources within a linear memory-space segment by dividing the segment into banked memory (banks). If the driver divides the linear memory-space segment into banks, the driver must set the UseBanking bit-field flag in the Flags member of the DXGK_SEGMENTDESCRIPTOR structure for the segment. The driver returns hints about banked memory in the HintedBank member of DXGK_ALLOCATIONINFO structures for allocations when the video memory manager calls the driver's DxgkDdiCreateAllocation function. For more information, see Specifying Segments When Creating Allocations.
While an allocation must be entirely contained within a segment, the allocation can cross the boundaries of banks within a segment.
If banks are used, the driver must cover the entire address space of the segment with banks. The first bank always starts at offset zero within the segment and the last bank always ends at the end of the segment. Banks are contiguous and have no free space between them.