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 控制器的所有安全元素,卡仿真模式设置为 EmulationOff,则必须禁用轮询循环的仿真模式。 如果还禁用了邻近感应功能,驱动程序应转换为低功耗模式。
  • 如果卡仿真模式设置为除 EmulationOff 以外的值,则驱动程序必须继续处于 D0 状态,并且应启用轮询循环的仿真模式, (可检测到外部读取器) 。
  • 关闭 SEManage 打开的文件句柄时,驱动程序必须将所有安全元素的卡仿真模式设置设置为 EmulationOff,除非最后一个设置卡仿真模式状态为 EmulationOnPowerIndependent。 如果最后一个卡仿真模式状态集是 EmulationOnPowerIndependent,则驱动程序必须保留“卡仿真模式”设置为“开”,并具有特定安全元素的 PbF 选项。
  • 驱动程序必须授予对客户端的独占访问权限才能管理卡仿真模式。 使用相对文件名 SEManage 打开文件句柄的后续调用将失败并STATUS_ACCESS_DENIED,直到具有独占访问权限的客户端关闭其文件句柄。

要求

要求
Header nfcsedev.h