Fungsi MmMapIoSpace (wdm.h)
MmMapIoSpace rutin memetakan rentang alamat fisik yang diberikan ke ruang sistem yang tidak di-patahkan.
Sintaks
PVOID MmMapIoSpace(
[in] PHYSICAL_ADDRESS PhysicalAddress,
[in] SIZE_T NumberOfBytes,
[in] MEMORY_CACHING_TYPE CacheType
);
Parameter
[in] PhysicalAddress
Menentukan alamat fisik awal rentang I/O yang akan dipetakan.
[in] NumberOfBytes
Menentukan nilai yang lebih besar dari nol, menunjukkan jumlah byte yang akan dipetakan.
[in] CacheType
Menentukan nilai MEMORY_CACHING_TYPE , yang menunjukkan atribut cache yang akan digunakan untuk memetakan rentang alamat fisik.
Nilai kembali
MmMapIoSpace mengembalikan alamat virtual dasar yang memetakan alamat fisik dasar untuk rentang tersebut. Jika spasi untuk memetakan rentang tidak mencukup, maka akan mengembalikan NULL.
Keterangan
Driver harus memanggil rutinitas ini selama start-up perangkat jika menerima sumber daya terjemahan jenis CmResourceTypeMemory dalam struktur CM_PARTIAL_RESOURCE_DESCRIPTOR . MmMapIoSpace memetakan alamat fisik yang dikembalikan dalam daftar sumber daya ke alamat logis tempat driver dapat mengakses pendaftaran perangkat.
MmMapIoSpace hanya boleh digunakan dengan halaman yang dikunci (milik halaman terkunci ruang MDL atau I/O), jika tidak, pemilik memori dapat membebaskannya (atau memori dapat di-paged in/out, dll.).
Misalnya, driver perangkat PIO yang mengalokasikan buffer I/O jangka panjang dapat memanggil rutinitas ini untuk membuat buffer tersebut dapat diakses atau membuat memori perangkat dapat diakses.
Untuk informasi selengkapnya tentang menggunakan rutinitas ini, lihat Memetakan Alamat Bus-Relative ke Alamat Virtual.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | IRQL <=DISPATCH_LEVEL |