Função SCardEndTransaction (winscard.h)

A função SCardEndTransaction conclui uma transação declarada anteriormente, permitindo que outros aplicativos retomem interações com o cartão.

Sintaxe

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

Parâmetros

[in] hCard

Valor de referência obtido de uma chamada anterior para SCardConnect. Esse valor também teria sido usado em uma chamada anterior para SCardBeginTransaction.

[in] dwDisposition

Ação para assumir o cartão no leitor conectado ao fechar.

Valor Significado
SCARD_EJECT_CARD
Ejete o cartão.
SCARD_LEAVE_CARD
Não faça nada especial.
SCARD_RESET_CARD
Redefina o cartão.
SCARD_UNPOWER_CARD
Desligue o cartão.

Retornar valor

Se a função for bem-sucedida, a função retornará SCARD_S_SUCCESS.

Se a função falhar, será exibido um código de erro. Para obter mais informações, consulte Valores retornados do cartão inteligente. Os códigos de erro possíveis seguem.

Valor/código retornado Descrição
SCARD_W_RESET_CARD
0x80100068L
A transação foi liberada. Qualquer comunicação futura com o cartão requer uma chamada para a função SCardReconnect.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: A transação não foi liberada. O aplicativo deve chamar imediatamente a função SCardDisconnect, SCardReconnect ou SCardReleaseContext para evitar que uma transação existente impeça que outros threads e processos se comuniquem com a cartão inteligente.

Comentários

A função SCardEndTransaction é uma função de acesso inteligente cartão e leitor. Para obter mais informações sobre outras funções de acesso, consulte Funções de acesso de cartão inteligente e leitor.

Exemplos

O exemplo a seguir encerra uma transação de cartão inteligente. O exemplo pressupõe que lReturn é uma variável válida do tipo LONG, que hCard é um identificador válido recebido de uma chamada anterior para a função SCardConnect e que hCard foi passado para uma chamada anterior para a função SCardBeginTransaction .


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

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winscard.h
Biblioteca Winscard.lib
DLL Winscard.dll

Confira também

Scardbegintransaction

Scardconnect