线性孔径空间段

线性光圈空间段类似于线性内存空间段。 但是,孔径空间段只是一个地址空间,无法存储位。

为了存储比特,必须分配系统内存页,并且必须重定向地址空间范围以引用这些页面。 内核模式显示微型端口驱动程序(KMD)必须实现 DxgkDdiBuildPagingBuffer 函数,以便为 DXGK_OPERATION_MAP_APERTURE_SEGMENT 和 DXGK_OPERATION_UNMAP_APERTURE_SEGMENT 操作类型处理重定向,并且必须按照 Display Miniport Driver 的 DriverEntry 中所述公开此函数。 Dxgkrnl 调用 DxgkDdiBuildPagingBuffer,传递要重定向的地址空间范围和引用已分配物理系统内存页的 MDL。

KMD 通常通过对页表进行编程来实现地址空间范围的重定向,而视频内存管理器(VidMm)对此是未知的。

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

  • CpuVisible 指示该段是 CPU 可访问的。

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

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

说明线性孔径空间段的关系图。