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


Метод ISCardISO7816::UpdateRecord

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

Метод UpdateRecord создает команду APDU , которая обновляет определенную запись с использованием битов, указанных в команде APDU.

Примечание

При использовании текущей адресации записей команда задает указатель на успешно обновленную запись.

 

Синтаксис

HRESULT UpdateRecord(
  [in]      BYTE         byRecordId,
  [in]      BYTE         byRefCtrl,
  [in]      LPBYTEBUFFER pData,
  [in, out] LPSCARDCMD   *ppCmd
);

Параметры

byRecordId [in]

Значение P1:

P1 = 00 обозначает текущую запись

P1 != '00' — это номер указанной записи.

byRefCtrl [in]

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

Значение Значение
Текущий EF
Битовое положение: 00000---
В настоящее время выбран ef.
Короткий идентификатор EF
Битовое положение: xxxxx---
Короткий идентификатор EF.
Первая запись
Битовое положение: -----000
Последняя запись
Битовое положение: -----001
Следующая запись
Битовое положение: -----010
Предыдущая запись
Битовое положение: -----011
Запись # в P1
Битовое положение: -----100

 

pData [in]

Указатель на обновляемую запись.

ppCmd [in, out]

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

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

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

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

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

 

Комментарии

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

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

Если созданная команда применяется к элементарному файлу с линейной фиксированной или циклической структурой, она прервется, если длина записи отличается от длины существующей записи.

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

Параметр "previous" команды (P2=xxxxx011), примененный к циклическому файлу, имеет то же поведение, что и команда, созданная AppendRecord.

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

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

ReadRecord

WriteRecord