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 zu einem Framework-Geräteobjekt.

[in] PhysicalAddress

Gibt die startende 64-Bit-physische Adresse 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. Der MEMORY_CACHING_TYPE Enumerationstyp wird 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-Wertezurück.

Bemerkungen

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 die in der Ressourcenliste zurückgegebene physische Adresse einer vom Framework verwalteten Adresse zuordnet, 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 UmdfDirectHardwareAccess INF-Direktive auf AllowDirectHardwareAccessfestlegen.

Wenn der Treiber die UmdfRegisterAccessMode INF-Direktive auf RegisterAccessUsingUserModeMappingfestlegt, ordnet das Aufrufen WdfDeviceMapIoSpace auch den angegebenen physischen Adressbereich einem Basisadressenbereich für den Benutzermodus zu, auf den der Treiber anschließend zugreifen kann, indem WdfDeviceGetHardwareRegisterMappedAddressaufgerufen wird.

Weitere Informationen zu INF-Direktiven, 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 Speicher zugeordnete Registerressourcen findet und zuordnet, finden Sie unter Lesen und Schreiben in Geräteregister.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8.1
Zielplattform- Universal
Mindest-UMDF-Version 2.0
Header- wdfdevice.h (einschließen Wdf.h)
Library WUDFx02000.lib
DLL- WUDFx02000.dll
IRQL- PASSIVE_LEVEL

Siehe auch

IWDFDevice3::MapIoSpace

WdfDeviceUnmapIoSpace-