Freigeben über


MmMapIoSpace-Funktion (wdm.h)

Die MmMapIoSpace Routine ordnet den angegebenen physischen Adressbereich nicht seitenseitigem Systembereich zu.

Syntax

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

Parameter

[in] PhysicalAddress

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

[in] NumberOfBytes

Gibt einen Wert an, der größer als 0 ist und die Anzahl der Bytes angibt, die zugeordnet werden sollen.

[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 zuordnet. Wenn der Speicherplatz für die Zuordnung des Bereichs nicht ausreicht, wird NULL-zurückgegeben.

Bemerkungen

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 die in der Ressourcenliste zurückgegebene physische Adresse einer logischen Adresse zuordnet, über die der Treiber auf Geräteregister zugreifen kann.

MmMapIoSpace- sollte nur mit Seiten verwendet werden, die gesperrt sind (gehören zu den gesperrten Seiten eines MDL- oder E/A-Speicherplatzes), 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 zuweisen, diese Routine aufrufen, um solche Puffer zugänglich zu machen oder den Gerätespeicher barrierefrei zu machen.

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

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- IRQL-<=DISPATCH_LEVEL

Siehe auch

MmAllocateContiguousMemory

MmAllocateNonCachedMemory

MmMapLockedPages-

MmUnmapIoSpace