Bagikan melalui


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

Lihat juga

MmAllocateContiguousMemory

MmAllocateNonCachedMemory

MmMapLockedPages

MmUnmapIoSpace