IOCTL_NFCSE_SET_ROUTING_TABLE IOCTL (nfcsedev.h)

配置 NFC 控制器侦听模式路由表。 请注意,调用方必须发送单个呼叫中的完整侦听模式路由信息。 调用方应确保路由表小于 4.2.5.1 中定义的 cbMaxRoutingTableSize 值。 总大小根据 NFC NCI 标准第 6.3.2 秒计算,等于基于 AID 的路由数 x 4 + cbAid 的总和 + 基于技术的路由数 x 5 + 基于协议的路由数 x 5。 调用方应确保基于技术和协议的路由的值符合 NCI NFC 规范第 6.3.2 秒。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

包含当前配置的所有路由条目的SECURE_ELEMENT_ROUTING_TABLE

输出缓冲区

状态块

Irp->如果请求成功,IoStatus.Status 设置为 STATUS_SUCCESS 。 可能的错误代码包括:

返回代码 说明
STATUS_INVALID_BUFFER_SIZE 提供的缓冲区大于 NFC 控制器MAX_ROUTING_TABLE_SIZE。
STATUS_FEATURE_NOT_SUPPORTED NFCC 不支持侦听模式路由配置。
STATUS_INVALID_PARAMETER 如果输出缓冲区不为零,或者用于技术或协议的值符合 NFC NCI 规范第 6.3.2 秒 6.3.2,或者使用了重复的 AID,或者使用当前 NFC 控制器功能不支持的路由模式,则返回此状态。
STATUS_INVALID_DEVICE_STATE 如果在非相对名称为“SEManage”的句柄上发送 IOCTL,则返回此代码。

注解

以下是驱动程序必须遵守的要求。

  • 此 IOCTL 在具有“SEManage”相对文件名的句柄上发送,否则驱动程序必须使用STATUS_INVALID_DEVICE_STATE完成它。
  • 驱动程序应具有初始默认侦听模式路由表条目,这些条目路由 RF 技术 A、B 和 F 和/或 ISO-DEP 协议路由到 UICC SE(如果存在)。 设备主机启动的新侦听模式路由表配置稍后可能会覆盖这些路由条目。
  • 驱动程序应确保协议 NFC-DEP 在任何时候都映射到设备主机。 即使调用方未指定此项,驱动程序也需要隐式添加此规则。
  • 如果在 NFCC 处于 RF 发现状态时发出此 IOCTL,驱动程序需要将 NFCC 置于 RF 空闲状态,配置路由表,然后重启 RF 发现。

要求

要求
Header nfcsedev.h