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.

Comentarios

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 las funciones WDF_READ_REGISTER_Xxx y WDF_WRITE_REGISTER_Xxx .

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

Si el controlador establece la directiva INF UmdfRegisterAccessMode en RegisterAccessUsingUserModeMapping, la llamada 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 tener acceso posteriormente llamando a WdfDeviceGetHardwareRegisterMappedAddress.

Para obtener más información sobre las directivas INF que pueden usar los controladores UMDF, vea Especificar 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 de PHYSICAL_ADDRESS se define en Wudfwdm.h, como se indica a continuación:

typedef LARGE_INTEGER PHYSICAL_ADDRESS;

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8.1
Plataforma de destino Universal
Versión mínima de UMDF 2.0
Encabezado wdfdevice.h (incluir Wdf.h)
Library WUDFx02000.lib
Archivo DLL WUDFx02000.dll
IRQL PASSIVE_LEVEL

Consulte también

IWDFDevice3::MapIoSpace

WdfDeviceUnmapIoSpace