Dividing a Memory-Space Segment into Banks
显示小端口驱动通过将段划分成Bank, 能够向VMM提供线性内存空间中的Allocation的最佳布局的细粒度控制提示。如果驱动将线性内存空间段划分成了Banks,驱动就必须设置DXGK_SEGMENTDESCRIPTOR 中Flag成员的UseBanking这个位域标志。驱动会在VMM调用驱动DxgkDdiCreateAllocation函数时通过DXGK_ALLOCATIONINFO 结构中HintedBank成员来返回关于Bank化内存提示。详见Specifying Segments When Creating Allocations.
当一个Allocation必须全部包含在一个段中时,这个Allocation能够跨越段中的不同Bank的边界。
如果Bank被使用,驱动就必须将整个段地址空间都分成Bank。第一个Bank从段的0偏移开始,最后一个Bank总是在段的末尾。Banks总是相接的,中间不存在未使用的空间。