IOMMU_MAP_PHYSICAL_ADDRESS structure (wdm.h)
The IOMMU_MAP_PHYSICAL_ADDRESS represents a physical address that is to be mapped to a logical address. It is used by IOMMU_MAP_LOGICAL_RANGE_EX and IOMMU_MAP_IDENTITY_RANGE_EX.
Syntax
typedef struct _IOMMU_MAP_PHYSICAL_ADDRESS {
IOMMU_MAP_PHYSICAL_ADDRESS_TYPE MapType;
union {
struct {
PMDL Mdl;
} Mdl;
struct {
PHYSICAL_ADDRESS Base;
SIZE_T Size;
} ContiguousRange;
struct {
PPFN_NUMBER PageFrame;
SIZE_T NumberOfPages;
} PfnArray;
};
} IOMMU_MAP_PHYSICAL_ADDRESS, *PIOMMU_MAP_PHYSICAL_ADDRESS;
Members
MapType
A IOMMU_MAP_PHYSICAL_ADDRESS_TYPE value that indicates the format the physical address is represented in.
Mdl
If MapType == MapPhysicalAddressMdl, provides a MDL that represents the physical address.
Mdl.Mdl
The pointer to the MDL that represents the physical address.
ContiguousRange
If MapType == MapPhysicalAddressContiguousRange, provides a contiguous physical address.
ContiguousRange.Base
The base address of a contiguous physical address.
ContiguousRange.Size
The size, in bytes, of a contiguous physical address.
PfnArray
If MapType == MapPhysicalAddressPfn, provides a PFN array.
PfnArray.PageFrame
The pointer to the PFN array.
PfnArray.NumberOfPages
The number of PFNs in the PFN array.
Remarks
When mapping a physical address using IOMMU_MAP_LOGICAL_RANGE_EX or IOMMU_MAP_IDENTITY_RANGE_EX, the physical addresses represented must be 4K page aligned and 4K page length.
Requirements
Requirement | Value |
---|---|
Minimum supported server | Windows Server 2022 |
Header | wdm.h (include Wdm.h) |