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 |