Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Запрос IOCTL_SMARTCARD_SET_PROTOCOL задает протокол, который драйвер будет использовать для связи с смарт-картой после обнаружения карточки (вставки).
Основной код
Входной буфер
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)