Метод ISCardISO7816::WriteBinary
[Метод WriteBinary доступен для использования в операционных системах, указанных в разделе Требования. Он недоступен для использования в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях, Windows Vista, Windows Server 2008 и последующих версиях операционной системы. Модули смарт-карт предоставляют аналогичные функциональные возможности.]
Метод WriteBinary создает команду application protocol data unit (APDU), которая записывает двоичные значения в элементарный файл.
В зависимости от атрибутов файла команда выполняет одну из следующих операций:
- Логическое ИЛИ битов, уже присутствующих в карта с битами, указанными в команде APDU (логическое состояние стертых битов файла равно 0).
- Логические И битов, уже присутствующих в карта с битами, указанными в команде APDU (логическое состояние стертых битов файла равно 1).
- Однократная запись в карта битов, указанных в команде APDU.
Если в байте кода данных не указано, применяется поведение логического ИЛИ.
Синтаксис
HRESULT WriteBinary(
[in] BYTE byP1,
[in] BYTE byP2,
[in] LPBYTEBUFFER pData,
[in, out] LPSCARDCMD *ppCmd
);
Параметры
-
byP1 [in]
-
Смещение до расположения записи от начала двоичного файла (EF). Если b8= 1 в P1, то b7 и b6 из P1 задается равным нулю (биты RFU), b5 — b1 из P1 — короткий идентификатор EF, а P2 — смещение первого байта, записываемого в единицах данных с начала файла. Если b8=0 в P1, то P1|| P2 — это смещение первого байта, записываемого в единицах данных, от начала файла.
-
byP2 [in]
-
Смещение до расположения записи от начала двоичного файла (EF). Если b8= 1 в P1, то b7 и b6 из P1 задается равным нулю (биты RFU), b5 — b1 из P1 — короткий идентификатор EF, а P2 — смещение первого байта, записываемого в единицах данных с начала файла. Если b8=0 в P1, то P1|| P2 — это смещение первого байта, записываемого в единицах данных, от начала файла.
-
pData [in]
-
Указатель на строку записываемых единиц данных.
-
ppCmd [in, out]
-
На входе — указатель на объект интерфейса ISCardCmd или NULL.
При возврате он заполняется командой APDU, созданной этой операцией. Если параметру ppCmd присвоено значение NULL, объект интеллектуальной картаISCardCmd создается внутренним образом и возвращается с помощью указателя ppCmd.
Возвращаемое значение
Метод возвращает одно из следующих возможных значений.
Код возврата | Описание |
---|---|
|
Operation completed successfully (Операция выполнена успешно). |
|
Недопустимый параметр. |
|
Был передан неправильный указатель. |
|
Недостаточно памяти. |
Комментарии
Инкапсулированную команду можно выполнить только в том случае, если состояние безопасности смарт-карта удовлетворяет атрибутам безопасности обрабатываемого начального файла.
Если команда содержит допустимый короткий элементарный идентификатор, она задает файл как текущий элементарный файл.
Если двоичная операция записи была применена к единице данных однократной операции записи EF, любая дальнейшая операция записи, ссылающаяся на эту единицу данных, будет прервана, если содержимое единицы данных или индикатор логического стертого состояния (при наличии), присоединенного к этой единице данных, отличается от логического состояния очистки.
Элементарные файлы без прозрачной структуры не могут быть записаны. Инкапсулируемая команда прерывается при применении к элементарном файлу без прозрачной структуры.
Список всех методов, предоставляемых этим интерфейсом, см. в разделе ISCardISO7816.
В дополнение к приведенным выше кодам ошибок COM этот интерфейс может возвращать код ошибки смарт-карта, если для выполнения запроса была вызвана функция смарт-карта. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows XP [только классические приложения] |
Минимальная версия сервера |
Windows Server 2003 [только классические приложения] |
Окончание поддержки клиентов |
Windows XP |
Окончание поддержки сервера |
Windows Server 2003 |
Заголовок |
|
Библиотека типов |
|
DLL |
|
IID |
IID_ISCardISO7816 определяется как 53B6AA68-3F56-11D0-916B-00AA00C18068 |
См. также раздел