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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de