Метод ISCardISO7816::WriteRecord
[Метод WriteRecord доступен для использования в операционных системах, указанных в разделе Требования. Он недоступен для использования в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях, Windows Vista, Windows Server 2008 и последующих версиях операционной системы. Модули смарт-карт предоставляют аналогичные функции.]
Метод WriteRecord создает команду application protocol data unit (APDU), которая инициирует одну из следующих операций:
- Запись записи один раз.
- Логическое ИЛИ байтов данных записи, уже присутствующих в карта с байтами данных записи, указанной в команде APDU.
- Логическое И байтов данных записи, уже присутствующих в карта с байтами данных записи, указанной в команде APDU.
Если в кодировании данных байт не указан, применяется логическое поведение ИЛИ.
Примечание
При использовании текущей адресации записей команда задает указатель на успешно обновленную запись.
Синтаксис
HRESULT WriteRecord(
[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.
Возвращаемое значение
Метод возвращает одно из следующих возможных значений.
Код возврата | Описание |
---|---|
|
Operation completed successfully (Операция выполнена успешно). |
|
Недопустимый параметр. |
|
Был передан плохой указатель. |
|
Недостаточно памяти. |
Комментарии
Инкапсулированная команда может выполняться только в том случае, если состояние безопасности смарт-карта соответствует атрибутам безопасности обрабатываемого элементарной системы.
Если команда содержит допустимый короткий элементарный идентификатор, она задает файл как текущий элементарный файл. Если во время выполнения этой команды выбран другой элементарный файл, эта команда может быть обработана без идентификации текущего выбранного файла.
Если инкапсулированная команда применяется к элементарному файлу с линейной фиксированной или циклической структурой, она прервется, если длина записи отличается от длины существующей записи. Если она применяется к элементарному файлу с линейной переменной, она может выполняться, если длина записи отличается от длины существующей записи.
Если P2=xxxxx011 и элементарный файл является циклическим файлом, эта команда имеет то же поведение, что и команда, созданная с помощью AppendRecord.
Элементарные файлы без структуры записи не могут быть записаны. Созданная команда прерывается при применении к элементарного файла без структуры записи.
Список всех методов, предоставляемых этим интерфейсом, см. в разделе ISCardISO7816.
В дополнение к приведенным выше кодам com-ошибок этот интерфейс может возвращать код ошибки смарт-карта, если для выполнения запроса была вызвана функция смарт-карта. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows XP [только классические приложения] |
Минимальная версия сервера |
Windows Server 2003 [только классические приложения] |
Окончание поддержки клиентов |
Windows XP |
Прекращение поддержки сервера |
Windows Server 2003 |
Заголовок |
|
Библиотека типов |
|
DLL |
|
IID |
IID_ISCardISO7816 определяется как 53B6AA68-3F56-11D0-916B-00AA00C18068 |
См. также раздел