Função SCardBeginTransaction (winscard.h)

A função SCardBeginTransaction inicia uma transação.

A função aguarda a conclusão de todas as outras transações antes de começar. Depois que a transação é iniciada, todos os outros aplicativos são impedidos de acessar a cartão inteligente enquanto a transação está em andamento.

Sintaxe

LONG SCardBeginTransaction(
  [in] SCARDHANDLE hCard
);

Parâmetros

[in] hCard

Um valor de referência obtido de uma chamada anterior para SCardConnect.

Retornar valor

Se a função for bem-sucedida, ela 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.

Se outro processo ou thread tiver redefinido o cartão, SCARD_W_RESET_CARD será retornado conforme o esperado.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Essa função retorna SCARD_S_SUCCESS mesmo que outro processo ou thread tenha redefinido o cartão. Para determinar se o cartão foi redefinido, chame a função SCardStatus imediatamente após chamar essa função.

Comentários

Se uma transação for mantida no cartão por mais de cinco segundos sem que nenhuma operação ocorra nesse cartão, a cartão será redefinida. Chamar qualquer uma das funções de acesso de cartão inteligente e leitor ou funções de acesso a cartão direto no cartão que é transacionado resulta na redefinição do temporizador para continuar permitindo que a transação seja usada.

A função SCardBeginTransaction é 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 demonstra como iniciar uma transação de cartão inteligente. O exemplo pressupõe que lReturn seja uma variável existente do tipo LONG e que hCard seja um identificador válido recebido de uma chamada anterior para SCardConnect.


lReturn = SCardBeginTransaction( hCard );
if ( SCARD_S_SUCCESS != lReturn )
 printf("Failed SCardBeginTransaction\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

Scardconnect

SCardEndTransaction