IOMMU_DOMAIN_CREATE_EX callback function (wdm.h)

Creates a new DMA device domain based on the provided domain type.

Syntax

IOMMU_DOMAIN_CREATE_EX IommuDomainCreateEx;

NTSTATUS IommuDomainCreateEx(
  [in]           IOMMU_DMA_DOMAIN_TYPE DomainType,
  [in]           IOMMU_DMA_DOMAIN_CREATION_FLAGS Flags,
  [in, optional] PIOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG LogicalAllocatorConfig,
  [in, optional] PIOMMU_DMA_RESERVED_REGION ReservedRegions,
  [out]          PIOMMU_DMA_DOMAIN *DomainOut
)
{...}

Parameters

[in] DomainType

Indicates the type of domain to be created. See IOMMU_DMA_DOMAIN_TYPE.

[in] Flags

Configuration flags for the device domain. Currently unused and must be set to 0. See IOMMU_DMA_DOMAIN_CREATION_FLAGS.

[in, optional] LogicalAllocatorConfig

Optionally provides a logical allocator configuration to initialize a HAL-implemented logical allocator to be associated with the domain. See IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG.

[in, optional] ReservedRegions

Optionally provides a set of IOMMU_DMA_RESERVED_REGION structures to be reserved during domain creation.

[out] DomainOut

Returns an opaque handle to the created domain.

Return value

STATUS_SUCCESS if the operation is successful. Possible error return values include the following status codes.

Return code Description
STATUS_INSUFFICIENT_RESOURCES The routine failed to allocate resources required for the domain or there are not enough ASIDs for unmanaged domains.
STATUS_NOT_SUPPORTED The hypervisor domain interface not available, x86 guest machine attempting to create a domain, or provided domain type is currently not allowed.

For more information, see NTSTATUS Values.

Remarks

To delete a domain created by IOMMU_DOMAIN_CREATE_EX, use IOMMU_DOMAIN_DELETE; there currently is no Ex equivalent of domain deletion.

Requirements

Requirement Value
Minimum supported server Windows Server 2022
Header wdm.h (include Wdm.h)

See also

IOMMU_DMA_DOMAIN_TYPE

IOMMU_DMA_DOMAIN_CREATION_FLAGS

IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG

IOMMU_DMA_RESERVED_REGION

IOMMU_DOMAIN_DELETE

DMA_IOMMU_INTERFACE_V2

DMA_IOMMU_INTERFACE_EX