Compartir a través de


Función MmMapIoSpace (wdm.h)

La rutina MmMapIoSpace asigna el intervalo de direcciones físicos especificado al espacio del sistema no paginado.

Sintaxis

PVOID MmMapIoSpace(
  [in] PHYSICAL_ADDRESS    PhysicalAddress,
  [in] SIZE_T              NumberOfBytes,
  [in] MEMORY_CACHING_TYPE CacheType
);

Parámetros

[in] PhysicalAddress

Especifica la dirección física 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ísicos.

Valor devuelto

MmMapIoSpace devuelve la dirección virtual base que asigna la dirección física base para el intervalo. Si el espacio para asignar el intervalo no es suficiente, devuelve NULL.

Comentarios

Un controlador debe llamar a esta rutina durante el inicio del dispositivo si recibe recursos traducidos de tipo CmResourceTypeMemory en una estructura de CM_PARTIAL_RESOURCE_DESCRIPTOR . MmMapIoSpace asigna la dirección física devuelta en la lista de recursos a una dirección lógica a través de la cual el controlador puede acceder a los registros del dispositivo.

MmMapIoSpace solo debe usarse con páginas bloqueadas (pertenecen a las páginas bloqueadas de un espacio de E/S o MDL), de lo contrario, el propietario de la memoria podría liberarla (o la memoria podría paginarse dentro o fuera, etc.).

Por ejemplo, los controladores de los dispositivos PIO que asignan búferes de E/S a largo plazo pueden llamar a esta rutina para que dichos búferes sean accesibles o para que la memoria del dispositivo sea accesible.

Para obtener más información sobre el uso de esta rutina, consulte Asignación de Bus-Relative direcciones a direcciones virtuales.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL IRQL <=DISPATCH_LEVEL

Consulte también

MmAllocateContiguousMemory

MmAllocateNonCachedMemory

MmMapLockedPages

MmUnmapIoSpace