Прочитать на английском

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


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)

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