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_CREATION_FLAGS