轉錄自 小小paul
線性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空間段的可視化表示。
沒有留言:
張貼留言