Метод ISCardISO7816::SelectFile
[Метод SelectFile доступен для использования в операционных системах, указанных в разделе Требования. Он недоступен для использования в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях, Windows Vista, Windows Server 2008 и последующих версиях операционной системы. Модули смарт-карт предоставляют аналогичные функции.]
Метод SelectFile создает команду APDU , которая задает текущий элементарный файл в логическом канале. Последующие команды могут неявно ссылаться на текущий файл через логический канал.
Если выбрать каталог (DF) в хранилище файлов карта, которое может быть корневым (MF) хранилища файлов, он станет текущим хранилищем файлов. После такого выбора по логическому каналу можно ссылаться на неявный текущий элементарный файл.
При выборе элементарного файла выбранный файл и его родительский элемент будут считаться текущими файлами.
После сброса ответа MF неявно выбирается через базовый логический канал, если не указано иначе в исторических байтах или в исходной строке данных.
Синтаксис
HRESULT SelectFile(
[in] BYTE byP1,
[in] BYTE byP2,
[in] LPBYTEBUFFER pData,
[in] LONG lBytesToRead,
[in, out] LPSCARDCMD *ppCmd
);
Параметры
-
byP1 [in]
-
Элемент управления "Выбор".
P1 (верхний байт в слове): 8 7 6 5 4 3 2 1 Значение - 000000xx
Выбор идентификатора файла - 00000000
EF, DF или MF - 00000001
Дочерняя DF - 00000010
EF в DF - 00000011
Родительская DF текущего DF Если P1=00, карта знает либо из-за определенного кода идентификатора файла, либо из-за контекста выполнения команды, если файлом для выбора является MF, DF или EF.
Если P1-P2=0000 указан идентификатор файла, он должен быть уникальным в следующих средах:
- Непосредственные дочерние элементы текущей DF
- Родительская DF
- Непосредственные дочерние элементы родительской DF
Если P1-P2=0000 и поле данных пустое или равно 3F00, выберите MF.
Если P1=04, поле данных является именем DF, возможно, усеченным по правому краю.
Если это поддерживается, последовательные такие команды с тем же полем данных должны выбирать DF, имена которых совпадают с полем данных (т. е. начинаются с поля данных команды). Если карта принимает команду с пустым полем данных, то можно последовательно выбрать все или подмножество DFs.
-
byP2 [in]
-
Элемент управления "Выбор".
-
pData [in]
-
Данные для операций при необходимости; else — NULL. В этом параметре передаются следующие типы данных:
- идентификатор файла
- путь из MF
- путь из текущей DF
- Имя DF
-
lBytesToRead [in]
-
Пустая (то есть 0) или максимальная длина данных, ожидаемая в ответе.
-
ppCmd [in, out]
-
На входных данных — указатель на объект интерфейса ISCardCmd или NULL.
При возврате он заполняется командой APDU, созданной этой операцией. Если параметру ppCmd присвоено значение NULL, то объект смарт-картаISCardCmd создается и возвращается с помощью указателя ppCmd.
Возвращаемое значение
Метод возвращает одно из следующих возможных значений.
Код возврата | Описание |
---|---|
|
Operation completed successfully (Операция выполнена успешно). |
|
Недопустимый параметр. |
|
Был передан плохой указатель. |
|
Недостаточно памяти. |
Комментарии
Если не указано иное, правильное выполнение инкапсулированной команды изменяет состояние безопасности в соответствии со следующими правилами:
- При изменении текущего элементарного файла или отсутствии текущего элементарного файла теряется состояние безопасности, специфичное для предыдущего элементарного файла.
- Если текущий каталог хранилища файлов (DF) является потомком или идентичен бывшему текущему DF, состояние безопасности, относящемся к бывшему текущему DF, теряется. Сохраняется состояние безопасности, общее для всех общих предков предыдущей и новой текущей DF.
Список всех методов, предоставляемых этим интерфейсом, см. в разделе ISCardISO7816.
В дополнение к приведенным выше кодам com-ошибок этот интерфейс может возвращать код ошибки смарт-карта, если для выполнения запроса была вызвана функция смарт-карта. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows XP [только классические приложения] |
Минимальная версия сервера |
Windows Server 2003 [только классические приложения] |
Окончание поддержки клиентов |
Windows XP |
Прекращение поддержки сервера |
Windows Server 2003 |
Заголовок |
|
Библиотека типов |
|
DLL |
|
IID |
IID_ISCardISO7816 определяется как 53B6AA68-3F56-11D0-916B-00AA00C18068 |
См. также раздел