IOCTL_NFCSE_SET_CARD_EMULATION_MODE IOCTL (nfcsedev.h)

IOCTL_NFCSE_SET_CARD_EMULATION_MODE 控制代码设置指定的安全元素是否在卡片仿真模式下公开。 当安全元素“公开”作为卡仿真时,这意味着当设备被带到外部读取器时,安全元素可由读取器访问。 IOCTL 是在使用相对文件名“SEManage”打开的文件句柄上发出的。 驱动程序必须授予对客户端的独占访问权限以管理卡仿真模式,也就是说,使用相对文件名“SEManage”打开文件句柄的后续调用将失败并STATUS_ACCESS_DENIED,直到具有独占访问权限的客户端关闭其文件句柄。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

SECURE_ELEMENT_SET_CARD_EMULATION_MODE_INFO 结构。

输出缓冲区

没有

状态块

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

返回代码 描述
STATUS_INVALID_PARAMETER 如果安全元素 GUID 无效或输出缓冲区为非零。
STATUS_INVALID_DEVICE_STATE 如果 IOCTL 是在具有相对名称“SEManage”的句柄上发送的。

言论

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

  • 必须在具有 SEEvents 相对文件名的句柄上调用此 IOCTL;否则,驱动程序将返回STATUS_INVALID_DEVICE_STATE。
  • 如果卡仿真模式设置为附加到 NFC 控制器的所有安全元素的仿真Off,则必须禁用轮询循环的仿真模式。 如果邻近感应功能也处于禁用状态,驱动程序应转换为低功率模式。
  • 如果卡仿真模式设置为除 EmulationOff 以外的值,则驱动程序必须继续处于 D0 状态,并且应启用轮询循环的仿真模式(可检测到外部读取器)。
  • 关闭 SEManage 打开的文件句柄时,驱动程序必须将所有安全元素的卡片仿真模式设置设置为 EmulationOff,除非上次设置的卡仿真模式状态为 EmulationOnPowerIndependent。 如果最后一个设置的卡仿真模式状态为 EmulationOnPowerIndependent,则驱动程序必须与特定安全元素的 PbF 选项一起将卡仿真模式设置为 On。
  • 驱动程序必须授予对客户端的独占访问权限才能管理卡仿真模式。 使用相对文件名 SEManage 打开文件句柄的后续调用将失败并STATUS_ACCESS_DENIED,直到具有独占访问权限的客户端关闭其文件句柄。

要求

要求 价值
标头 nfcsedev.h