Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |