IOMMU_QUERY_INPUT_MAPPINGS回调函数 (wdm.h)

尝试查找对给定设备有效的输入映射 ID,并使用这些 ID 填充提供的缓冲区。

语法

IOMMU_QUERY_INPUT_MAPPINGS IommuQueryInputMappings;

NTSTATUS IommuQueryInputMappings(
  [_In_]     PDEVICE_OBJECT PhysicalDeviceObject,
  [_Inout_]  PINPUT_MAPPING_ELEMENT Buffer,
  [_In_]     ULONG BufferLength,
  [_Out_opt] PULONG ReturnLength
)
{...}

参数

[_In_] PhysicalDeviceObject

指向设备堆栈中 PDO) (物理设备对象的指针。

[_Inout_] Buffer

指向使用输入映射 ID 填充 INPUT_MAPPING_ELEMENT类型的缓冲区 的指针。

[_In_] BufferLength

Buffer 指向的 缓冲区的长度。

[_Out_opt] ReturnLength

可选。 一个指针,用于存储 (写入的数据量或) 提供足够大小的缓冲区时将写入的数据量。

返回值

如果操作成功,则返回STATUS_SUCCESS。 否则,返回相应的 NTSTATUS 值错误代码。 有关详细信息,请参阅 NTSTATUS 值。 可能的值包括:

错误代码 说明
STATUS_BUFFER_TOO_SMALL 提供的缓冲区大小不足。
STATUS_UNSUCCESSFUL 无法满足请求。
STATUS_SUCCESS 缓冲区已正确填充。

注解

如果缓冲区长度不足,则不会写入任何 ID,并且 ReturnLength ((如果提供) 将使用所需的缓冲区大小填充)。

此例程目前仅在 ARM64 系统上受支持。

要求

要求
最低受支持的客户端 Windows 10 版本 1803
标头 wdm.h (包括 Wdm.h)