Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
IOMMU_PASID_DEVICE_CREATE takes an IOMMU_DMA_DEVICE token and spawns a new PASID sub-device representing the newly assigned ASID.
Syntax
IOMMU_PASID_DEVICE_CREATE IommuPasidDeviceCreate;
NTSTATUS IommuPasidDeviceCreate(
PIOMMU_DMA_DEVICE DmaDevice,
PIOMMU_DMA_PASID_DEVICE *PasidDeviceOut,
PULONG AsidOut
)
{...}
Parameters
DmaDevice
[in] Pointer to the IOMMU_DMA_DEVICE token from which sub-devices are spawned.
[in] Pointer to the IOMMU_DMA_DEVICE token from which sub-devices are spawned.
PasidDeviceOut
[out] Pointer to an opaque IOMMU_DMA_PASID_DEVICE structure that represents the newly created IOMMU DMA PASID sub-device.
AsidOut
[out] Pointer to hold the system-assigned PASID.
Return value
IOMMU_PASID_DEVICE_CREATE returns an NTSTATUS value. Possible values include:
Return code | Description |
---|---|
STATUS_SUCCESS | The sub-device was successfully created. PasidDeviceOut returns a valid pointer. |
STATUS_INVALID_PARAMETER_1 | The provided device token is not configured for PASID-tagged DMA or PASIDs are not supported. |
STATUS_INSUFFICIENT_RESOURCES | Not enough memory to allocate an IOMMU_DMA_PASID_DEVICE structure. |
STATUS_NONE_MAPPED | An ASID could not be allocated. |
Requirements
Requirement | Value |
---|---|
Header | wdm.h |
IRQL | PASSIVE_LEVEL |