IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE función de devolución de llamada (wdm.h)
Asigna previamente el espacio de direcciones lógicos que se puede usar para futuras asignaciones. Esto concede a un controlador la capacidad de garantizar el progreso hacia delante para futuras llamadas de asignación o desasignación.
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ógico que se va a reservar. Este valor debe representar un número entero de páginas.
[in, optional] ExplicitLogicalAddress
Dirección lógica de 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 de direcciones lógicas explícita, 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, se omitirá este campo.
[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, se omitirá este campo.
[out] LogicalAddressToken
Devuelve un IOMMU_DMA_LOGICAL_ADDRESS_TOKEN que representa el intervalo de direcciones lógicas reservado.
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ó un ExplicitLogicalAddress para un dominio sin asignador lógico. |
Para obtener más información, vea Valores NTSTATUS.
Comentarios
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ógicos 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 | Value |
---|---|
Servidor mínimo compatible | Windows Server 2022 |
Encabezado | wdm.h (incluya Wdm.h) |
Consulte también
IOMMU_DMA_LOGICAL_ADDRESS_TOKEN
IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE