WdfDeviceMapIoSpace-Funktion (wdfdevice.h)
[Gilt nur für UMDF]
Die WdfDeviceMapIoSpace-Funktion ordnet den angegebenen physischen Adressbereich dem Systemadressraum zu und gibt eine Pseudobasisadresse zurück.
Syntax
NTSTATUS WdfDeviceMapIoSpace(
[in] WDFDEVICE Device,
[in] PHYSICAL_ADDRESS PhysicalAddress,
[in] SIZE_T NumberOfBytes,
[in] MEMORY_CACHING_TYPE CacheType,
[out] PVOID *PseudoBaseAddress
);
Parameter
[in] Device
Ein Handle für ein Framework-Geräteobjekt.
[in] PhysicalAddress
Gibt die physische Startadresse von 64 Bit des E/A-Bereichs an, der zugeordnet werden soll.
[in] NumberOfBytes
Gibt einen Wert größer als 0 an, der 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. Der MEMORY_CACHING_TYPE Enumerationstyp ist in Wdfdevice.h definiert.
[out] PseudoBaseAddress
Die Adresse eines Speicherorts, der einen Zeiger auf die Pseudobasisadresse empfängt.
Rückgabewert
Wenn der Vorgang erfolgreich ist, gibt die Funktion STATUS_SUCCESS zurück.
Die Funktion gibt möglicherweise andere NTSTATUS-Werte zurück.
Hinweise
Diese Funktion ist die UMDF-Version 2-Entsprechung von IWDFDevice3::MapIoSpace.
Ein Treiber muss diese Funktion während des Gerätestarts aufrufen, wenn er übersetzte Ressourcen vom Typ CmResourceTypeMemory in einer CM_PARTIAL_RESOURCE_DESCRIPTOR-Struktur empfängt. WdfDeviceMapIoSpace ordnet die in der Ressourcenliste zurückgegebene physische Adresse einer vom Framework verwalteten Adresse zu, die als Pseudobasisadresse bezeichnet wird.
Der Treiber kann dann die Pseudobasisadresse verwenden, um auf Geräteregister mit WDF_READ_REGISTER_Xxx - und WDF_WRITE_REGISTER_Xxx-Funktionen zuzugreifen.
Ein Treiber, der WdfDeviceMapIoSpace aufruft , muss die INF-Anweisung UmdfDirectHardwareAccess auf AllowDirectHardwareAccess festlegen.
Wenn der Treiber die UmdfRegisterAccessMode-INF-Anweisung auf RegisterAccessUsingUserModeMapping festlegt, ordnet der Aufruf von WdfDeviceMapIoSpace auch den angegebenen physischen Adressbereich einem Basisadressbereich des Benutzermodus zu, auf den der Treiber anschließend zugreifen kann, indem er WdfDeviceGetHardwareRegisterMappedAddress aufruft.
Weitere Informationen zu INF-Anweisungen, die UMDF-Treiber verwenden können, finden Sie unter Angeben von WDF-Direktiven in INF-Dateien.
Weitere Informationen zum Analysieren von Hardwareressourcen ab UMDF Version 2 finden Sie unter Behandeln von Hardwareressourcen in einem UMDF-Treiber.
Der PHYSICAL_ADDRESS-Typ wird in Wudfwdm.h wie folgt definiert:
typedef LARGE_INTEGER PHYSICAL_ADDRESS;
Ein Beispiel, das zeigt, wie ein Treiber Speicherzuordnungsressourcen findet und zuordnet, finden Sie unter Lesen und Schreiben in Geräteregister.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8.1 |
Zielplattform | Universell |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfdevice.h (einschließen von Wdf.h) |
Bibliothek | WUDFx02000.lib |
DLL | WUDFx02000.dll |
IRQL | PASSIVE_LEVEL |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für