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


Метод ISCardISO7816::ManageChannel

[Метод ManageChannel доступен для использования в операционных системах, указанных в разделе Требования. Он недоступен для использования в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях, Windows Vista, Windows Server 2008 и последующих версиях операционной системы. Модули смарт-карт предоставляют аналогичные функции.]

Метод ManageChannel создает команду APDU , которая открывает и закрывает логические каналы.

Функция open открывает новый логический канал, отличный от базового. Предоставляются параметры для карта для назначения номера логического канала или для номера логического канала, который должен быть предоставлен карта.

Функция close явно закрывает логический канал, отличный от базового. После успешного закрытия логический канал будет доступен для повторного использования.

Синтаксис

HRESULT ManageChannel(
  [in]      BYTE       byChannelState,
  [in]      BYTE       byChannel,
  [in, out] LPSCARDCMD *ppCmd
);

Параметры

byChannelState [in]

Бит b8 P1 используется для обозначения функции open или close; Если значение b8 равно 0, то MANAGE CHANNEL должен открыть логический канал, а если b8 имеет значение 1, то MANAGE CHANNEL должен закрыть логический канал:

P1 = "00", чтобы открыть

P1 = '80', чтобы закрыть

Другие значения : RFU

byChannel [in]

Для функции open (P1 = "00") биты b1 и b2 P2 используются для кода номера логического канала так же, как и в классе byte, остальные биты P2 являются RFU.

Если b1 и b2 P2 имеют значение NULL, карта назначит логический номер канала, который будет возвращен в битах b1 и b2 поля данных.

Если b1 и (или) b2 P2 не имеют значения NULL, они кодируют логический номер канала, отличный от базового; затем карта откроет номер логического канала, назначенный извне.

ppCmd [in, out]

На входных данных — указатель на объект интерфейса ISCardCmd или NULL.

При возврате он заполняется командой APDU, созданной этой операцией. Если параметру ppCmd присвоено значение NULL, то объект smart картаISCardCmd создается и возвращается с помощью указателя ppCmd.

Возвращаемое значение

Метод возвращает одно из следующих возможных значений.

Код возврата Описание
S_OK
Operation completed successfully (Операция выполнена успешно).
E_INVALIDARG
Недопустимый параметр.
E_POINTER
Был передан плохой указатель.
E_OUTOFMEMORY
Недостаточно памяти.

 

Комментарии

Если открытая функция успешно выполняется из базового логического канала, MF должен быть неявно выбран в качестве текущей DF, а состояние безопасности нового логического канала должно совпадать с состоянием безопасности базового логического канала после ATR. Состояние безопасности нового логического канала должно быть отдельно от состояния безопасности любого другого логического канала.

При успешном выполнении функции открытия из логического канала, который не является базовым, текущая функция DF логического канала, выдавшего команду, будет выбрана в качестве текущей DF. Кроме того, состояние безопасности для нового логического канала должно совпадать с состоянием безопасности логического канала, из которого выполнялась открытая функция.

После успешного завершения функции состояние безопасности, связанное с этим логическим каналом, теряется.

Список всех методов, предоставляемых этим интерфейсом, см. в разделе ISCardISO7816.

В дополнение к приведенным выше кодам com-ошибок этот интерфейс может возвращать код ошибки смарт-карта, если для выполнения запроса была вызвана функция смарт-карта. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Окончание поддержки клиентов
Windows XP
Прекращение поддержки сервера
Windows Server 2003
Заголовок
Scardssp.h
Библиотека типов
Scardsrv.tlb
DLL
Scardssp.dll
IID
IID_ISCardISO7816 определяется как 53B6AA68-3F56-11D0-916B-00AA00C18068

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

ISCardISO7816