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