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)

See also

IOMMU_MAP_LOGICAL_RANGE_EX

IOMMU_MAP_IDENTITY_RANGE_EX

IOMMU_MAP_PHYSICAL_ADDRESS_TYPE