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 с подвесной ручкой.

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

Требования

Требование Значение
Заголовок winsmcrd.h

См. также раздел

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

Руководство по проектированию smart карта