MmMapIoSpaceEx-Funktion (wdm.h)

Die MmMapIoSpaceEx-Routine ordnet den angegebenen physischen Adressbereich mit dem angegebenen Seitenschutz dem nicht ausgelagerten Systembereich zu.

Syntax

PVOID MmMapIoSpaceEx(
  [in] PHYSICAL_ADDRESS PhysicalAddress,
  [in] SIZE_T           NumberOfBytes,
  [in] ULONG            Protect
);

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] Protect

Flagbits, die den schutz angeben, der für den zugeordneten Bereich verwendet werden soll. Der Aufrufer muss eines der folgenden Flagbits im Protect-Parameter festlegen.

Flag-Bit Bedeutung
PAGE_READONLY Der zugeordnete Bereich kann nur gelesen, nicht geschrieben werden.
PAGE_READWRITE Der zugeordnete Bereich kann gelesen oder geschrieben werden.
PAGE_EXECUTE Der zugeordnete Bereich kann ausgeführt, aber nicht gelesen oder geschrieben werden.
PAGE_EXECUTE_READ Der zugeordnete Bereich kann ausgeführt oder gelesen, aber nicht geschrieben werden.
PAGE_EXECUTE_READWRITE Der zugeordnete Bereich kann ausgeführt, gelesen oder geschrieben werden.
 

Darüber hinaus kann der Aufrufer ein (aber nicht beides) der folgenden optionalen Flagbits im Protect-Parameter festlegen.

Flag-Bit Bedeutung
PAGE_NOCACHE Gibt nicht zwischengespeicherten Arbeitsspeicher an.
PAGE_WRITECOMBINE Gibt den kombinierten Schreibspeicher an (der Arbeitsspeicher sollte nicht vom Prozessor zwischengespeichert werden, aber Schreibvorgänge in den Arbeitsspeicher können vom Prozessor kombiniert werden).

Rückgabewert

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

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
Unterstützte Mindestversion (Client) Ab Windows 10 verfügbar.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

Weitere Informationen

MmAllocateContiguousMemory

MmAllocateNonCachedMemory

MmMapLockedPages

MmUnmapIoSpace