Freigeben über


MmMapIoSpace-Funktion (wdm.h)

Die MmMapIoSpace-Routine ordnet den angegebenen physischen Adressbereich dem nicht ausseitigen Systembereich zu.

Syntax

PVOID MmMapIoSpace(
  [in] PHYSICAL_ADDRESS    PhysicalAddress,
  [in] SIZE_T              NumberOfBytes,
  [in] MEMORY_CACHING_TYPE CacheType
);

Parameter

[in] PhysicalAddress

Gibt die physische Startadresse des E/A-Bereichs an, der zugeordnet werden soll.

[in] NumberOfBytes

Gibt einen Wert größer als 0 (null) an, der die Anzahl der zuzuordnenden Bytes angibt.

[in] CacheType

Gibt einen MEMORY_CACHING_TYPE Wert an, der das Cache-Attribut angibt, das zum Zuordnen des physischen Adressbereichs verwendet werden soll.

Rückgabewert

MmMapIoSpace gibt die virtuelle Basisadresse zurück, die die physische Basisadresse für den Bereich ordnet. Wenn der Speicherplatz für die Zuordnung des Bereichs nicht ausreicht, wird NULL zurückgegeben.

Hinweise

Ein Treiber muss diese Routine während des Gerätestarts aufrufen, wenn er übersetzte Ressourcen vom Typ CmResourceTypeMemory in einer CM_PARTIAL_RESOURCE_DESCRIPTOR-Struktur empfängt. MmMapIoSpace ordnet die in der Ressourcenliste zurückgegebene physische Adresse einer logischen Adresse zu, über die der Treiber auf Geräteregister zugreifen kann.

MmMapIoSpace sollte nur für seiten verwendet werden, die gesperrt sind (gehören zu den gesperrten Seiten eines MDL- oder E/A-Raums), andernfalls könnte der Besitzer des Speichers ihn freigeben (oder der Speicher könnte ein-/ausgelagert werden usw.).

Beispielsweise können Treiber von PIO-Geräten, die langfristige E/A-Puffer zuordnen, diese Routine aufrufen, um diese Puffer zugänglich zu machen oder den Gerätespeicher zugänglich zu machen.

Weitere Informationen zur Verwendung dieser Routine finden Sie unter Zuordnen Bus-Relative Adressen zu virtuellen Adressen.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <=DISPATCH_LEVEL

Weitere Informationen

MmAllocateContiguousMemory

MmAllocateNonCachedMemory

MmMapLockedPages

MmUnmapIoSpace