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


Метод ISCardISO7816::P utData

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

Метод PutData создает команду application protocol data unit (APDU), в которой хранится один примитивный объект данных или набор объектов данных, содержащихся в сконструированном объекте данных, в зависимости от выбранного файла.

Способ хранения объектов (однократная запись и (или) обновление и(или) добавление) зависит от определения или характера объектов данных.

Синтаксис

HRESULT PutData(
  [in]      BYTE         byP1,
  [in]      BYTE         byP2,
  [in]      LPBYTEBUFFER pData,
  [in, out] LPSCARDCMD   *ppCmd
);

Параметры

byP1 [in]

Кодирование P1–P2.

Значение Значение
0000 – 003F
RFU
0040 – 00FF
Тег BER-TLV (1 байт) в P2
0100– 01FF
Данные приложения (собственное кодирование)
0200 – 02FF
Тег SIMPLE-TLV в P2
0300 – 03FF
RFU
0400 - 04FF
Тег BER-TLV (2 байта) в P1–P2

 

byP2 [in]

Кодирование P1–P2.

Значение Значение
0000 – 003F
RFU
0040 – 00FF
Тег BER-TLV (1 байт) в P2
0100– 01FF
Данные приложения (собственное кодирование)
0200 – 02FF
Тег SIMPLE-TLV в P2
0300 – 03FF
RFU
0400 - 04FF
Тег BER-TLV (2 байта) в P1–P2

 

pData [in]

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

ppCmd [in, out]

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

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

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

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

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

 

Комментарии

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

Хранение данных приложения

Если значение P1–P2 находится в диапазоне от 0100 до 01FF, значение P1–P2 должно быть идентификатором, зарезервированным для карта внутренних тестов и для собственных служб, значимых в контексте данного приложения.

Хранение объектов данных

Если значение P1–P2 находится в диапазоне от 0040 до 00FF, значение P2 должно быть тегом BER-TLV в одном байте. Значение 00FF зарезервировано для указания того, что поле данных содержит объекты данных BER-TLV.

Если значение P1–P2 находится в диапазоне от 0200 до 02FF, значение P2 должно быть тегом SIMPLE-TLV. Значение 0200 — РФС. Значение 02FF зарезервировано для указания того, что поле данных содержит объекты данных SIMPLE-TLV.

Если значение P1–P2 находится в диапазоне от 4000 до FFFF, значение P1–P2 должно быть тегом BER-TLV в двух байтах. Значения от 4000 до FFFF являются RFU.

При указании примитивного объекта данных поле данных командного сообщения должно содержать значение соответствующего объекта данных-примитива.

При указании сконструированного объекта данных поле данных командного сообщения должно содержать значение созданного объекта данных (т. е. объекты данных, включая их тег, длину и значение).

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

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

GetData

ISCardISO7816