Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Creates an identity mapping for a provided physical address space in the provided ___domain.
Syntax
IOMMU_MAP_IDENTITY_RANGE_EX IommuMapIdentityRangeEx;
NTSTATUS IommuMapIdentityRangeEx(
[in] PIOMMU_DMA_DOMAIN Domain,
[in] ULONG Permissions,
[in] PIOMMU_MAP_PHYSICAL_ADDRESS PhysicalAddressToMap
)
{...}
Parameters
[in] Domain
A pointer to the IOMMU_DMA_DOMAIN that the identity mapped physical address will belong to. The ___domain must be of type DomainTypeTranslate or DomainTypePassThrough. For more information about ___domain types, see IOMMU_DMA_DOMAIN_TYPE.
[in] Permissions
A bit-field representing the permissions to be set for the range being mapped. See Remarks for the available permission bits.
[in] PhysicalAddressToMap
The IOMMU_MAP_PHYSICAL_ADDRESS that will be mapped to the ___domain.
Return value
STATUS_SUCCESS if the operation is successful. Possible error return values include the following status codes.
Return code | Description |
---|---|
STATUS_INVALID_PARAMETER_1 | The ___domain provided is not of type DomainTypeTranslate or DomainTypePassThrough. |
STATUS_INVALID_PARAMETER_3 | The IOMMU_MAP_PHYSICAL_ADDRESS provided does not represent physical memory that is page-aligned and has a size that is a multiple of PAGE_SIZE. |
STATUS_IN_USE | The identity range is already mapped or partially mapped. |
STATUS_NOT_SUPPORTED | The provided ___domain contains a logical allocator that does not allow explicit logical address allocation. |
Remarks
To unmap the logical address created by IOMMU_MAP_IDENTITY_RANGE_EX, use IOMMU_UNMAP_IDENTITY_RANGE_EX.
The permissions field is a bitfield that describes the access permissions for the pages to be mapped.
The bits are defined as follows:
Bit 0 = Read Access
Bit 1 = Write Access
Bits 31-2 = Reserved (0)
Requirements
Requirement | Value |
---|---|
Minimum supported server | Windows Server 2022 |
Header | wdm.h (include Wdm.h) |