Compartir a través de


Función WdfDeviceMapIoSpace (wdfdevice.h)

[Solo se aplica a UMDF]

La función WdfDeviceMapIoSpace asigna el intervalo de direcciones físicos especificado al espacio de direcciones del sistema y devuelve una dirección pseudo base.

Sintaxis

NTSTATUS WdfDeviceMapIoSpace(
  [in]  WDFDEVICE           Device,
  [in]  PHYSICAL_ADDRESS    PhysicalAddress,
  [in]  SIZE_T              NumberOfBytes,
  [in]  MEMORY_CACHING_TYPE CacheType,
  [out] PVOID               *PseudoBaseAddress
);

Parámetros

[in] Device

Identificador de un objeto de dispositivo de marco.

[in] PhysicalAddress

Especifica la dirección física de 64 bits inicial del intervalo de E/S que se va a asignar.

[in] NumberOfBytes

Especifica un valor mayor que cero, que indica el número de bytes que se van a asignar.

[in] CacheType

Especifica un valor de MEMORY_CACHING_TYPE, que indica el atributo de caché que se va a usar para asignar el intervalo de direcciones físico. El tipo de enumeración MEMORY_CACHING_TYPE se define en Wdfdevice.h.

[out] PseudoBaseAddress

Dirección de una ubicación que recibe un puntero a la dirección pseudo base.

Valor devuelto

Si la operación se realiza correctamente, la función devuelve STATUS_SUCCESS.

La función puede devolver otros valores NTSTATUS de .

Observaciones

Esta función es el equivalente de la versión 2 de UMDF de IWDFDevice3::MapIoSpace.

Un controlador debe llamar a esta función durante el inicio del dispositivo si recibe recursos traducidos de tipo CmResourceTypeMemory en una estructura de CM_PARTIAL_RESOURCE_DESCRIPTOR. WdfDeviceMapIoSpace asigna la dirección física devuelta en la lista de recursos a una dirección administrada por el marco denominada dirección pseudo base.

A continuación, el controlador puede usar la dirección pseudo base para acceder a los registros de dispositivos con WDF_READ_REGISTER_Xxx y WDF_WRITE_REGISTER_funciones xxx.

Un controlador que llama a WdfDeviceMapIoSpace debe establecer la directiva UmdfDirectHardwareAccess INF en AllowDirectHardwareAccess.

Si el controlador establece la directiva UmdfRegisterAccessMode INF en RegisterAccessUsingUserModeMapping, llamando a WdfDeviceMapIoSpace también asigna el intervalo de direcciones físicos especificado a un intervalo de direcciones base en modo de usuario al que el controlador puede acceder posteriormente llamando a WdfDeviceGetHardwareRegisterMappedAddress.

Para obtener más información sobre las directivas INF que pueden usar los controladores UMDF, vea Especificación de directivas WDF en archivos INF.

Para obtener más información sobre el análisis de recursos de hardware a partir de la versión 2 de UMDF, consulte control de recursos de hardware en un controlador UMDF.

El tipo PHYSICAL_ADDRESS se define en Wudfwdm.h, como se indica a continuación:

typedef LARGE_INTEGER PHYSICAL_ADDRESS;

Para obtener un ejemplo que muestra cómo un controlador encuentra y asigna recursos de registro asignados a memoria, consulte Lectura y escritura en registros de dispositivos.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 8.1
de la plataforma de destino de Universal
versión mínima de UMDF 2.0
encabezado de wdfdevice.h (incluya Wdf.h)
biblioteca de WUDFx02000.lib
DLL de WUDFx02000.dll
irQL PASSIVE_LEVEL

Consulte también

IWDFDevice3::MapIoSpace

WdfDeviceUnmapIoSpace