線形のアパーチャ領域セグメント
線形開口空間セグメントは、線形メモリ空間セグメントに似ています。 ただし、絞りスペース セグメントはアドレス空間のみで、ビットを保持することはできません。
ビットを保持するには、システム メモリ ページを割り当てる必要があり、それらのページを参照するにはアドレス空間範囲をリダイレクトする必要があります。 カーネル モードディスプレイ ミニポート ドライバー (KMD) は、リダイレクトを処理するためにDXGK_OPERATION_MAP_APERTURE_SEGMENTおよびDXGK_OPERATION_UNMAP_APERTURE_SEGMENT操作の種類の DxgkDdiBuildPagingBuffer 関数を実装する必要があり、「ディスプレイ ミニポート ドライバーのドライバーのドライバーの DriverEntry」で説明されているように、この関数を公開する必要があります。 Dxgkrnl は DxgkDdiBuildPagingBuffer リダイレクトされるアドレス空間範囲と、割り当てられた物理システム メモリ ページを参照する MDL を呼び出します。
KMD は通常、ビデオ メモリ マネージャー (VidMm には不明なページ テーブルをプログラミングすることで、アドレス空間範囲のリダイレクトを実現します。
ドライバーで線形アパーチャ空間セグメントを指定するには、DXGK_SEGMENTDESCRIPTOR 構造体の Flags メンバーで Aperture ビット フィールド フラグを設定する必要があります。 ドライバーは、他のセグメントのサポートを示す次のビット フィールド フラグを設定することもできます。
CpuVisible: セグメントが CPU からアクセス可能であることを示します。
CacheCoherent: セグメントが、リダイレクト先のページに関して CPU とのキャッシュの一貫性を維持することを示します。
次の図は、線形アパーチャ空間セグメントを視覚的に表したものです。