Поделиться через


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.

Замечания

Ниже приведены требования, с которыми должен соответствовать драйвер.

  • Этот IOCTL должен вызываться на дескриптор с относительным именем файла SEEvents; в противном случае драйвер возвращает STATUS_INVALID_DEVICE_STATE.
  • Если для всех защищенных элементов, подключенных к контроллеру NFC, задано значение EmulationOff, режим эмуляции цикла опроса должен быть отключен. Если функции близкого взаимодействия также отключены, драйвер должен перейти в режим низкой мощности.
  • Если для режима эмуляции карты задано значение, отличное от EmulationOff, драйвер должен продолжать находиться в состоянии D0, а режим эмуляции цикла опроса должен быть включен (обнаруживаемый внешним читателям).
  • При закрытии дескриптора открытого файла SEManage драйвер должен задать параметры режима эмуляции карты для всех безопасных элементов, за исключением того, когда состояние режима эмуляции последней карточки — EmulationOnPowerIndependent. Если последнее состояние режима эмуляции карточки — EmulationOnPowerIndependent, драйвер должен оставаться в режиме эмуляции карты включено с параметром PbF для определенных безопасных элементов.
  • Драйвер должен предоставить клиенту эксклюзивный доступ к режиму эмуляции карт. Последующие вызовы для открытия дескриптора файла с использованием относительного имени ФАЙЛА SEManage завершаются сбоем с STATUS_ACCESS_DENIED, пока клиент с эксклюзивным доступом не закрывает его дескриптор файла.

Требования

Требование Ценность
заголовка nfcsedev.h