Linear Aperture-Space Segments (MSDN翻译)
Linear Aperture-Space Segments
线性aperture空间段类似于线性内存空间段.但是线性aperture段只是一段虚拟地址空间而不能真正保存数据。为了保存数据必须分配系统内存页,而这段虚拟地址空间也必须被重定向到这些页上。小端口驱动必须实现 DxgkDdiBuildPagingBuffer中的DXGK_OPERATION_MAP_APERTURE_SEGMENT 和 DXGK_OPERATION_UNMAP_APERTURE_SEGMENT操作来处理地址的重定向而且必须按照DriverEntry of Display Miniport Driver描述的方式暴露这个函数。DxgkDdiBuildPagingBuffer会收到需要被重定向的地址范围和被分配的系统物理内存页所引用的MDL。
显卡小驱动程序通常通过编程一个页表来完成地址空间范围的重定向,而视频内存管理器并不知道这个页表。
驱动程序必须在DXGK_SEGMENTDESCRIPTOR结构的Flags成员中设置Aperture位域标志来指定一个线性Aperture空间段。驱动程序还可以设置以下位域标志,以表明额外的段支持:
- CpuVisible表示这个段CPU可以访问
- CacheCoherent表示段与段重定向到的页面保持CPU缓存一致性。
下图显示了线性Aperture空间段的可视化表示。