IOMMU_DEVICE_CREATE回调函数 (wdm.h)
采用物理设备对象并创建一个不透明的令牌,表示可与 IOMMU 接口 API 一起使用 的IOMMU_DMA_DEVICE 。
语法
IOMMU_DEVICE_CREATE IommuDeviceCreate;
NTSTATUS IommuDeviceCreate(
PDEVICE_OBJECT DeviceObject,
PIOMMU_DEVICE_CREATION_CONFIGURATION DeviceConfig,
PIOMMU_DMA_DEVICE *DmaDeviceOut
)
{...}
参数
DeviceObject
[In]指向所创建IOMMU_DMA_DEVICE表示的设备的物理 设备 对象的指针。
DeviceConfig
[In,可选]指向创建设备时可能需要的配置列表的可选指针,具体取决于系统。 目前,这是 ARM64 上的 ACPI 设备所必需的。
DmaDeviceOut
[Out]指向表示所创建IOMMU_DMA_DEVICE的不透明标记 的指针。
返回值
STATUS_SUCCESS 操作是否成功。 可能的错误返回值包括以下状态代码。
返回代码 | 说明 |
---|---|
|
提供的 PDO 表示不在 IOMMU 后面的设备。 |
|
提供的输入与系统支持不匹配。 |
|
例程未能分配 “IOMMU_DMA_DEVICE” 结构所需的资源。 |
|
未为“GetDeviceId”函数正确实现基础 IOMMU 接口。 |
|
提供的 PDO 表示不在 IOMMU 后面的设备。
如果设备未在 IOMMU 后面找到,则它应该已经具有直接的物理内存访问,并且平台不符合 DMA 防护。 |
有关详细信息,请参阅 NTSTATUS 值。
注解
ARM64 系统上的 ACPI 设备必须通过 DeviceConfig
参数提供输入映射。 ARM64 系统上的所有其他设备类型和非 ARM64 系统上的任何 设备不应提供 任何设备配置;否则,调用将在 STATUS_INVALID_PARAMETER_2失败。
要求
要求 | 值 |
---|---|
最低受支持的服务器 | Windows Server 2022 |
标头 | wdm.h (包括 Wdm.h) |