Функция SCardEndTransaction (winscard.h)

Функция SCardEndTransaction завершает ранее объявленную транзакцию, позволяя другим приложениям возобновить взаимодействие с карта.

Синтаксис

LONG SCardEndTransaction(
  [in] SCARDHANDLE hCard,
  [in] DWORD       dwDisposition
);

Параметры

[in] hCard

Значение ссылки, полученное при предыдущем вызове SCardConnect. Это значение также использовалось бы в более раннем вызове SCardBeginTransaction.

[in] dwDisposition

Действие для выполнения карта в подключенном средстве чтения при закрытии.

Значение Значение
SCARD_EJECT_CARD
Извлеките карта.
SCARD_LEAVE_CARD
Не делайте ничего особенного.
SCARD_RESET_CARD
Сбросьте карта.
SCARD_UNPOWER_CARD
Выключите карта.

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

Если функция выполнена успешно, функция возвращает SCARD_S_SUCCESS.

Если функция завершается сбоем, она возвращает код ошибки. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты. Ниже приведены возможные коды ошибок.

Возвращаемый код или значение Описание
SCARD_W_RESET_CARD
0x80100068L
Транзакция была освобождена. Любой будущий обмен данными с карта требует вызова функции SCardReconnect.

Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP: Транзакция не была освобождена. Приложение должно немедленно вызвать функцию SCardDisconnect, SCardReconnect или SCardReleaseContext, чтобы избежать существующей транзакции, блокирующей взаимодействие других потоков и процессов с смарт-карта.

Комментарии

Функция SCardEndTransaction — это интеллектуальная функция доступа карта и чтения. Дополнительные сведения о других функциях доступа см. в разделе Функции доступа к смарт-картам и читателю.

Примеры

В следующем примере завершается транзакция смарт-карта. В примере предполагается, что lReturn является допустимой переменной типа LONG, что hCard является допустимым дескриптором, полученным от предыдущего вызова функции SCardConnect , и что hCard был передан в предыдущий вызов функции SCardBeginTransaction .


lReturn = SCardEndTransaction(hCard, 
                              SCARD_LEAVE_CARD);
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardEndTransaction\n");

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winscard.h
Библиотека Winscard.lib
DLL Winscard.dll

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

SCardBeginTransaction

SCardConnect