IOMMU_MAP_LOGICAL_RANGE_EX función de devolución de llamada (wdm.h)
Asigna el espacio de direcciones físicas al espacio de direcciones lógico de un IOMMU_DMA_DOMAIN.
Sintaxis
IOMMU_MAP_LOGICAL_RANGE_EX IommuMapLogicalRangeEx;
NTSTATUS IommuMapLogicalRangeEx(
[in] PIOMMU_DMA_DOMAIN Domain,
[in] ULONG Permissions,
[in] PIOMMU_MAP_PHYSICAL_ADDRESS PhysicalAddressToMap,
[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 LogicalAddressOut
)
{...}
Parámetros
[in] Domain
Puntero a la IOMMU_DMA_DOMAIN a la que pertenecerá la dirección lógica asignada. El dominio debe ser de tipo DomainTypeTranslate. Para obtener más información sobre los tipos de dominio, vea IOMMU_DMA_DOMAIN_TYPE.
[in] Permissions
Campo de bits que representa los permisos que se van a establecer para el intervalo que se va a asignar. Consulte Los comentarios de los bits de permiso disponibles.
[in] PhysicalAddressToMap
El IOMMU_MAP_PHYSICAL_ADDRESS que se asignará al dominio.
[in, optional] ExplicitLogicalAddress
Dirección lógica del dominio a la que se debe asignar la dirección física. 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) a la que se debe asignar la dirección física. 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 permitida (inclusiva) a la que se debe asignar la dirección física. Si el dominio no se creó con un asignador lógico registrado, este campo se omitirá.
[out] LogicalAddressOut
Devuelve la dirección lógica resultante de la asignación.
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_3 | El IOMMU_MAP_PHYSICAL_ADDRESS proporcionado no representa la memoria física alineada con páginas y tiene un tamaño que es un múltiplo de PAGE_SIZE. |
STATUS_INVALID_PARAMETER_4 | 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
Para desasignación de la dirección lógica creada por IOMMU_MAP_LOGICAL_RANGE_EX, use IOMMU_UNMAP_LOGICAL_RANGE; actualmente no hay ningún equivalente ex para la desasignación del intervalo de direcciones lógicos.
El campo permisos es un campo de bits que describe los permisos de acceso de las páginas que se van a asignar.
Los bits se definen de la manera siguiente:
Bit 0 = Read Access
Bit 1 = Write Access
Bits 31-2 = Reserved (0)
Requisitos
Requisito | Valor |
---|---|
servidor mínimo admitido | Windows Server 2022 |
encabezado de | wdm.h (incluya Wdm.h) |