// wdm.h
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
)
{...}
View the official Windows Driver Kit DDI referenceNo description available.
Creates a new DMA device domain based on the provided domain type.
DomainType [in]Indicates the type of domain to be created. See IOMMU_DMA_DOMAIN_TYPE.
Flags [in]Configuration flags for the device domain. Currently unused and must be set to 0. See IOMMU_DMA_DOMAIN_CREATION_FLAGS.
LogicalAllocatorConfig [in, optional]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.
ReservedRegions [in, optional]Optionally provides a set of IOMMU_DMA_RESERVED_REGION structures to be reserved during domain creation.
DomainOut [out]Returns an opaque handle to the created domain.
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.
To delete a domain created by IOMMU_DOMAIN_CREATE_EX, use IOMMU_DOMAIN_DELETE; there currently is no Ex equivalent of domain deletion.
IOMMU_DMA_DOMAIN_CREATION_FLAGS
IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG