Função SCardGetStatusChangeA (winscard.h)

A função SCardGetStatusChange bloqueia a execução até que a disponibilidade atual dos cartões em um conjunto específico de leitores seja alterada.

O chamador fornece uma lista de leitores a serem monitorados por uma matriz SCARD_READERSTATE e a quantidade máxima de tempo (em milissegundos) que está disposto a aguardar que uma ação ocorra em um dos leitores listados. Observe que SCardGetStatusChange usa o valor fornecido pelo usuário nos membros dwCurrentState da matriz rgReaderStatesSCARD_READERSTATE como a definição do estado atual dos leitores. A função retorna quando há uma alteração na disponibilidade, tendo preenchido os membros dwEventState de rgReaderStates adequadamente.

Sintaxe

LONG SCardGetStatusChangeA(
  [in]      SCARDCONTEXT         hContext,
  [in]      DWORD                dwTimeout,
  [in, out] LPSCARD_READERSTATEA rgReaderStates,
  [in]      DWORD                cReaders
);

Parâmetros

[in] hContext

Um identificador que identifica o contexto do gerenciador de recursos. O contexto do gerenciador de recursos é definido por uma chamada anterior para a função SCardEstablishContext .

[in] dwTimeout

A quantidade máxima de tempo, em milissegundos, para aguardar uma ação. Um valor zero faz com que a função retorne imediatamente. Um valor de INFINITE faz com que essa função nunca tenha tempo limite.

[in, out] rgReaderStates

Uma matriz de estruturas de SCARD_READERSTATE que especificam os leitores a watch e que recebe o resultado.

Para ser notificado sobre a chegada de um novo leitor de cartão inteligente, defina o membro szReader de uma estrutura de SCARD_READERSTATE como "\\? PnP?\Notification", e defina todos os outros membros dessa estrutura como zero.

Importante Cada membro de cada estrutura nessa matriz deve ser inicializado como zero e, em seguida, definido como valores específicos, conforme necessário. Se isso não for feito, a função falhará em situações que envolvem leitores remotos de cartão.
 

[in] cReaders

O número de elementos na matriz rgReaderStates .

Retornar valor

Essa função retorna valores diferentes dependendo se ela é bem-sucedida ou falha.

Código de retorno Descrição
Êxito
SCARD_S_SUCCESS.
Falha
Um código de erro. Para obter mais informações, consulte Valores retornados do cartão inteligente.

Comentários

A função SCardGetStatusChange é uma função de controle de cartão inteligente. Para obter mais informações sobre outras funções de acompanhamento, consulte Funções de acompanhamento de cartão inteligente.

Exemplos

Para obter informações sobre como chamar essa função, consulte o exemplo em SCardLocateCards.

Observação

O cabeçalho winscard.h define SCardGetStatusChange como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

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

SCARD_READERSTATE

SCardCancel

Scardestablishcontext

SCardLocateCards