MmMapIoSpaceEx-Funktion (wdm.h)
Die MmMapIoSpaceEx Routine ordnet den angegebenen physischen Adressbereich mit dem angegebenen Seitenschutz dem nicht seitenseitigen Systembereich zu.
Syntax
PVOID MmMapIoSpaceEx(
[in] PHYSICAL_ADDRESS PhysicalAddress,
[in] SIZE_T NumberOfBytes,
[in] ULONG Protect
);
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] Protect
Flagbits, die den Schutz angeben, der für den zugeordneten Bereich verwendet werden soll. Der Aufrufer muss eines der folgenden Flagbits im parameter Protect festlegen.
Flagbit | Bedeutung |
---|---|
PAGE_READONLY | Der zugeordnete Bereich kann nur gelesen und 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 eine (aber nicht beide) der folgenden optionalen Flagbits im parameter Protect festlegen.
Flagbit | Bedeutung |
---|---|
PAGE_NOCACHE | Gibt nicht zwischengespeicherten Arbeitsspeicher an. |
PAGE_WRITECOMBINE | Gibt schreibgeschützten Arbeitsspeicher 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 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. MmMapIoSpaceEx die in der Ressourcenliste zurückgegebene physische Adresse einer virtuellen Adresse zuordnet, über die der Treiber auf Geräteregister zugreifen kann.
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 |
---|---|
mindestens unterstützte Client- | Verfügbar ab Windows 10. |
Zielplattform- | Universal |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <=DISPATCH_LEVEL |