Bagikan melalui


Segmen Ruang Bukaan Linier

Segmen ruang bukaan linier mirip dengan segmen ruang memori linier. Namun, segmen ruang bukaan hanya ruang alamat dan tidak dapat menahan bit.

Untuk menahan bit, halaman memori sistem harus dialokasikan, dan rentang ruang alamat harus dialihkan untuk merujuk ke halaman tersebut. Driver miniport tampilan mode kernel (KMD) harus mengimplementasikan fungsi DxgkDdiBuildPagingBuffer untuk jenis operasi DXGK_OPERATION_MAP_APERTURE_SEGMENT dan DXGK_OPERATION_UNMAP_APERTURE_SEGMENT untuk menangani pengalihan dan harus mengekspos fungsi ini seperti yang dijelaskan dalam DriverEntry Driver Display Miniport. Dxgkrnl memanggil DxgkDdiBuildPagingBuffer dengan rentang ruang alamat yang akan dialihkan dan MDL yang mereferensikan halaman memori sistem fisik yang dialokasikan.

KMD biasanya menyelesaikan pengalihan rentang ruang alamat dengan memprogram tabel halaman, yang tidak diketahui oleh manajer memori video (VidMm).

Driver harus mengatur bendera Aperture bit-field di anggota Bendera dari struktur DXGK_SEGMENTDESCRIPTOR untuk menentukan segmen ruang bukaan linier. Driver juga dapat mengatur bendera bit-field berikut untuk menunjukkan dukungan segmen lainnya:

  • CpuVisible untuk menunjukkan bahwa segmen dapat diakses CPU.

  • CacheCoherent untuk menunjukkan bahwa segmen mempertahankan koherensi cache dengan CPU untuk halaman tempat segmen dialihkan.

Gambar berikut menunjukkan representasi visual segmen ruang bukaan linier.

Diagram yang mengilustrasikan segmen ruang bukaan linier.