Compartir a través de


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

Asigna previamente el espacio de direcciones lógicas que se puede usar para futuras asignaciones. Esto concede a un controlador la capacidad de garantizar el progreso hacia delante para futuras llamadas de mapa o mapa.

Sintaxis

IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE IommuReserveLogicalAddressRange;

NTSTATUS IommuReserveLogicalAddressRange(
  [in]           PIOMMU_DMA_DOMAIN Domain,
  [in]           SIZE_T Size,
  [in, optional] PIOMMU_DMA_LOGICAL_ADDRESS ExplicitLogicalAddress,
  [in, optional] PIOMMU_DMA_LOGICAL_ADDRESS MinLogicalAddress,
  [in, optional] PIOMMU_DMA_LOGICAL_ADDRESS MaxLogicalAddress,
  [out]          PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN *LogicalAddressToken
)
{...}

Parámetros

[in] Domain

Puntero a la IOMMU_DMA_DOMAIN a la que pertenecerá la dirección lógica reservada. El dominio debe ser de tipo DomainTypeTranslate. Para obtener más información sobre los tipos de dominio, vea IOMMU_DMA_DOMAIN_TYPE.

[in] Size

Tamaño, en bytes, del intervalo de direcciones lógicos que se va a reservar. Este valor debe representar un número entero de páginas.

[in, optional] ExplicitLogicalAddress

Dirección lógica del dominio que se debe reservar. Si el dominio no se creó con un asignador lógico registrado, se requiere este campo. Si el dominio se creó con un asignador lógico registrado que no admite la asignación explícita de direcciones lógicas, este campo debe ser NULL.

[in, optional] MinLogicalAddress

Dirección lógica mínima (inclusiva) permitida que se puede reservar. Si el dominio no se creó con un asignador lógico registrado, este campo se omitirá.

[in, optional] MaxLogicalAddress

Dirección lógica máxima (inclusiva) permitida que se puede reservar. Si el dominio no se creó con un asignador lógico registrado, este campo se omitirá.

[out] LogicalAddressToken

Devuelve un IOMMU_DMA_LOGICAL_ADDRESS_TOKEN que representa el intervalo de direcciones lógicas reservados.

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_1 El dominio proporcionado no es de tipo DomainTypeTranslate.
STATUS_INVALID_PARAMETER_2 El tamaño proporcionado no es un múltiplo de PAGE_SIZE.
STATUS_INVALID_PARAMETER_3 ExplicitLogicalAddress proporcionado no está alineado con páginas.
STATUS_INVALID_PARAMETER_MIX No se pudieron satisfacer las direcciones lógicas mínimas y máximas proporcionadas.
STATUS_IN_USE ExplicitLogicalAddress ya está asignado o parcialmente asignado.
STATUS_NOT_SUPPORTED Se proporcionó un ExplicitLogicalAddress para un dominio con un asignador lógico que no permite la asignación explícita de direcciones lógicas. O bien, no se proporcionó explicitLogicalAddress para un dominio sin asignador lógico.

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

Observaciones

Los tokens de dirección lógica se pueden liberar a través de IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE.

Los tokens de dirección lógica deben tener partes de sus intervalos de direcciones lógicas asignados y sin asignar desde direcciones físicas a través de IOMMU_MAP_RESERVED_LOGICAL_RANGE y IOMMU_UNMAP_RESERVED_LOGICAL_RANGE.

Requisitos

Requisito Valor
servidor mínimo admitido Windows Server 2022
encabezado de wdm.h (incluya Wdm.h)

Consulte también

IOMMU_DMA_LOGICAL_ADDRESS_TOKEN

IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE

IOMMU_MAP_RESERVED_LOGICAL_RANGE

IOMMU_UNMAP_RESERVED_LOGICAL_RANGE