线性孔径空间段
线性光圈空间段类似于线性内存空间段。 但是,光圈空间段只是地址空间,不能容纳位。
若要保存位,必须分配系统内存页,并且必须重定向地址空间范围以引用这些页面。 内核模式显示微型端口驱动程序(KMD)必须实现 DxgkDdiBuildPagingBuffer 函数,以便DXGK_OPERATION_MAP_APERTURE_SEGMENT和DXGK_OPERATION_UNMAP_APERTURE_SEGMENT操作类型来处理重定向,并且必须按 Display Miniport Driver Driver Driver 的 DriverEntry 中所述公开此函数。 Dxgkrnl 使用要重定向的地址空间范围和引用已分配的物理系统内存页的 MDL 调用 DxgkDdiBuildPagingBuffer 。
KMD 通常通过编程页表(对于视频内存管理器(VidMm)未知)来实现地址空间范围的重定向。
驱动程序必须在DXGK_SEGMENTDESCRIPTOR结构的 Flags 成员中设置 Aperture 位字段标志,以指定线性光圈空间段。 驱动程序还可以设置以下位字段标志来指示其他段支持:
CpuVisible 指示该段是 CPU 可访问的。
CacheCoherent 指示该段与段重定向到的页面的 CPU 保持缓存一致性。
下图显示了线性光圈空间段的可视表示形式。