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


Метод ISCardISO7816::ReadRecord

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

Метод ReadRecord создает команду application protocol data unit (APDU), которая считывает содержимое указанных записей или начальную часть одной записи элементарного файла.

Синтаксис

HRESULT ReadRecord(
  [in]      BYTE       byRecordId,
  [in]      BYTE       byRefCtrl,
  [in]      LONG       lBytesToRead,
  [in, out] LPSCARDCMD *ppCmd
);

Параметры

byRecordId [in]

Номер записи или идентификатор первой считываемой записи (00 обозначает текущую запись).

byRefCtrl [in]

Кодирование ссылочного элемента управления.

Значение Значение
Текущий EF
Битовое положение: 00000---
В настоящее время выбран ef.
Короткий идентификатор EF
Битовое положение: xxxxx---
Короткий идентификатор EF.
RFU
Битовое положение: 11111---
Записи #
Битовое положение: -----1xx
Использование номера записи в P1.
Чтение записи
Битовое положение: -----100
Чтение записи P1.
До последнего
Битовое положение: -----101
Чтение всех записей от P1 до последней.
До P1
Битовое положение: -----110
Чтение всех записей от последней до P1.
RFU
Битовое положение: -----111
Идентификатор записи
Битовое положение: -----0xx
Использование номера записи в P1.
Первое произошло
Битовое положение: -----000
Чтение первого вхождения.
Последнее произошло
Битовое положение: -----001
Последнее вхождение чтения.
Следующее происходит
Битовое положение: -----010
Чтение следующего вхождения.
Назад
Битовое положение: -----011
Чтение предыдущего вхождения.
Секрет
Битовое положение: ---xxxxx

 

lBytesToRead [in]

Число байтов для чтения из прозрачного EF.

Если поле Le содержит только нули, то в зависимости от b3b2b1 P2 и в пределах 256 для короткой длины или 65536 для расширенной длины, команда должна полностью считывать либо одну запрошенную запись, либо запрошенную последовательность записей.

ppCmd [in, out]

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

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

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

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

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

 

Комментарии

Инкапсулированная команда может выполняться только в том случае, если состояние безопасности смарт-карта соответствует атрибутам безопасности считываемого файла.

Если во время выполнения этой команды выбран другой элементарный файл, он может быть обработан без идентификации выбранного в данный момент файла.

Если команда содержит допустимый короткий элементарный идентификатор, она задает файл как текущий элементарный файл.

Элементарные файлы без структуры записи не могут быть прочитаны. Инкапсулированная команда прерывается при применении к элементарного файла без структуры записи.

Список всех методов, предоставляемых этим интерфейсом, см. в разделе 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

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

AppendRecord

ISCardISO7816

UpdateRecord

WriteRecord