Edit

Share via


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