Метод 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.
Возвращаемое значение
Метод возвращает одно из следующих возможных значений.
Код возврата | Описание |
---|---|
|
Operation completed successfully (Операция выполнена успешно). |
|
Недопустимый параметр. |
|
Был передан неправильный указатель. |
|
Недостаточно памяти. |
Комментарии
Команда может выполняться только в том случае, если состояние безопасности удовлетворяет условиям безопасности, определенным приложением в контексте функции.
-
Хранение данных приложения
-
Если значение 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 |
Заголовок |
|
Библиотека типов |
|
DLL |
|
IID |
IID_ISCardISO7816 определяется как 53B6AA68-3F56-11D0-916B-00AA00C18068 |
См. также раздел