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

IWDFDevice3::MapIoSpace

WdfDeviceUnmapIoSpace