IOMMU_MAP_RESERVED_LOGICAL_RANGE función de devolución de llamada (wdm.h)

Asigna un intervalo lógico reservado.

A diferencia de IOMMU_MAP_LOGICAL_RANGE_EX, esto se garantiza que no realice ninguna asignación de memoria, ya que se supone que ya se han realizado anteriormente con IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE.

Sintaxis

IOMMU_MAP_RESERVED_LOGICAL_RANGE IommuMapReservedLogicalRange;

NTSTATUS IommuMapReservedLogicalRange(
  [in, out] PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN LogicalAddressToken,
  [in]      SIZE_T Offset,
  [in]      ULONG Permissions,
  [in]      PIOMMU_MAP_PHYSICAL_ADDRESS PhysicalAddressToMap,
  [out]     PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT MappedSegment
)
{...}

Parámetros

[in, out] LogicalAddressToken

El IOMMU_DMA_LOGICAL_ADDRESS_TOKEN al que se va a asignar.

[in] Offset

Desplazamiento, en bytes, en el token de dirección lógica, que representa la dirección lógica base que se va a asignar.

[in] Permissions

Campo de bits que representa los permisos que se van a establecer para el intervalo que se va a asignar. Vea Comentarios para los bits de permiso disponibles.

[in] PhysicalAddressToMap

El IOMMU_MAP_PHYSICAL_ADDRESS que se asignará al dominio.

[out] MappedSegment

Devuelve el IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT que representa un segmento del token de dirección lógica que ahora está asignado.

Valor devuelto

STATUS_SUCCESS si la operación se realiza correctamente. Entre los posibles valores devueltos de error se incluyen los siguientes códigos de estado.

Código devuelto Descripción
STATUS_INVALID_PARAMETER_2 El desplazamiento proporcionado no está alineado con la página.
STATUS_INVALID_PARAMETER_4 La dirección física proporcionada no está alineada con la página o no es un número entero de páginas de tamaño.
STATUS_RESOURCE_IN_USE El intervalo de direcciones lógico representado en el token de dirección lógica ya está completamente o parcialmente asignado.
STATUS_UNSUCCESSFUL El token de dirección lógica se está eliminando actualmente.

Para obtener más información, vea Valores NTSTATUS.

Comentarios

Un segmento asignado de token de dirección lógica se puede desasignar a través de IOMMU_UNMAP_RESERVED_LOGICAL_RANGE.

El campo de permisos es un campo de bits que describe los permisos de acceso para las páginas que se van a asignar.

Los bits se definen de la siguiente manera:

Bit 0 = Read Access

Bit 1 = Write Access

Bits 31-2 = Reserved (0)

Requisitos

Requisito Value
Servidor mínimo compatible Windows Server 2022
Encabezado wdm.h (incluya Wdm.h)

Consulte también

IOMMU_UNMAP_RESERVED_LOGICAL_RANGE

IOMMU_MAP_PHYSICAL_ADDRESS

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT