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


IOCTL_SMARTCARD_IS_PRESENT IOCTL (winsmcrd.h)

Код элемента управления IOCTL_SMARTCARD_IS_PRESENT определяет, обнаружена ли в настоящее время смарт-карта. Если карточка присутствует, она возвращается немедленно с STATUS_SUCCESS. Если смарт-карта не обнаружена, она подписывается на событие прибытия смарт-карты и сохраняется в ожидании. Закрытие дескриптора файла отменяет подписку на событие.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Никакой.

Выходной буфер

Никакой.

Блок состояния

Irp->IoStatus.Status имеет значение STATUS_SUCCESS, если запрос выполнен успешно. Возможные коды ошибок:

Код возврата Описание
STATUS_PENDING Этот код возвращается, если операция ожидает приближения смарт-карты к радио полю.
STATUS_DEVICE_BUSY Этот код возвращается, если операция уже ожидает текущего события.
STATUS_INVALID_DEVICE_STATE Этот код возвращается, если устройство не может принять запрос.
STATUS_INVALID_PARAMETER Этот код возвращается, когда входные или выходные буферы недопустимы.
STATUS_DEVICE_POWERED_OFF Этот код возвращается при отключении радиоконтроля близкого взаимодействия.

Замечания

При использовании этого IOCTL требуются следующие действия:

  • Драйвер должен поддерживать CancelIo в этом заготовленном IOCTL.

  • Это управляемый питанием запрос. Заготовленный IOCTL будет хранить драйвер в состоянии питания D0.
  • Драйвер должен возвращать STATUS_SUCCESS только для поддерживаемого типа.

Требования

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

См. также

руководство по проектированию для связи с полями (NFC)

руководство по проектированию смарт-карт