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.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk