线性孔径空间段

线性光圈空间段类似于线性内存空间段;但是,光圈空间段只是地址空间,不能容纳位。 若要保存位,必须分配系统内存页,并且必须重定向地址空间范围以引用这些页面。 显示微型端口驱动程序必须实现 DxgkDdiBuildPagingBuffer 函数,以便DXGK_OPERATION_MAP_APERTURE_SEGMENT和DXGK_OPERATION_UNMAP_APERTURE_SEGMENT操作类型来处理重定向,并且必须公开此函数,如 Display Miniport Driver 的 DriverEntry 中所述。 DxgkDdiBuildPagingBuffer 函数接收要重定向的范围,以及引用已分配的物理系统内存页的 MDL。

显示微型端口驱动程序通常通过编程页表(视频内存管理器未知)来实现地址空间范围的重定向。

驱动程序必须在DXGK_SEGMENTDESCRIPTOR结构的 Flags 成员中设置 Aperture 位字段标志,以指定线性光圈空间段。 驱动程序还可以设置以下位字段标志来指示其他段支持:

  • CpuVisible 指示该段可访问 CPU。

  • CacheCoherent 表示该段与段重定向到的页面的 CPU 保持缓存一致性。

下图显示了线性光圈空间段的可视表示形式。

diagram illustrating a linear aperture-space segment.