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


IOCTL_SMARTCARD_SET_PROTOCOL IOCTL (winsmcrd.h)

Запрос IOCTL_SMARTCARD_SET_PROTOCOL задает протокол, который драйвер будет использовать для связи со смарт-карта после обнаружения (вставки) карта.

Основной код

IRP_MJ_DEVICE_CONTROL

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

  • Irp->AssociatedIrp.SystemBuffer Содержит маску протоколов, допустимых для следующих передач. Маска может быть побитовой ИЛИ следующих значений:

    • SCARD_PROTOCOL_RAW
    • SCARD_PROTOCOL_T0
    • SCARD_PROTOCOL_T1
    • SCARD_PROTOCOL_DEFAULT
    • SCARD_PROTOCOL_OPTIMAL

    Последние два значения — это дополнительные битовые определения, которые указывают, что драйвер должен либо явно выбрать тип протокола (PTS) с наилучшими возможными параметрами связи (SCARD_PROTOCOL_OPTIMAL), либо использовать неявный протокол карта со стандартными параметрами (SCARD_PROTOCOL_DEFAULT). Если карта поддерживает только один протокол с одним набором параметров связи, биты игнорируются.

  • Parameters.DeviceIoControl.InputBufferLength Необходимо задать значение sizeof(ULONG). Драйвер решает, какой протокол из маски использовать с вставленным карта.

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

  • Irp->AssociatedIrp.SystemBuffer Драйвер хранит выбранный протокол здесь (например, SCARD_PROTOCOL_T1). Можно задать только один бит маски.

Длина выходного буфера

  • Parameters.DeviceIoControl.OutputBufferLength Должен иметь значение sizeof(ULONG).

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

Irp->Для параметра IoStatus.Information должно быть задано значение sizeof(ULONG).

Irp->IoStatus.Status имеет одно из следующих значений.

Значение Значение
STATUS_SUCCESS Протокол успешно выбран.
STATUS_NO_MEDIA Интеллектуальные карта в средстве чтения не обнаружены.
STATUS_IO_TIMEOUT Истекло время ожидания для выполнения операции.
STATUS_NOT_SUPPORTED Смарт-карта не поддерживает ни один из запрошенных протоколов.
STATUS_INVALID_DEVICE_REQUEST Маска не содержит известный протокол.

Дополнительные сведения см. в разделе Значения NTSTATUS.

Требования

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

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

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

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