estrutura SCARD_READERSTATEA (winscard.h)

A estrutura SCARD_READERSTATE é usada por funções para acompanhar cartões inteligentes dentro dos leitores.

Sintaxe

typedef struct {
  LPCSTR szReader;
  LPVOID pvUserData;
  DWORD  dwCurrentState;
  DWORD  dwEventState;
  DWORD  cbAtr;
  BYTE   rgbAtr[36];
} SCARD_READERSTATEA, *PSCARD_READERSTATEA, *LPSCARD_READERSTATEA;

Membros

szReader

Um ponteiro para o nome do leitor que está sendo monitorado.

Defina o valor desse membro como "\\? PnP?\Notification" e os valores de todos os outros membros a zero a serem notificados sobre a chegada de um novo leitor de cartão inteligente.

pvUserData

Não usado pelo subsistema de cartão inteligente. Esse membro é usado pelo aplicativo.

dwCurrentState

Estado atual do leitor, conforme visto pelo aplicativo. Esse campo pode assumir qualquer um dos valores a seguir, em combinação, como uma máscara de bits.

Valor Significado
SCARD_STATE_UNAWARE
O aplicativo não tem conhecimento do estado atual e gostaria de saber. O uso desse valor resulta em um retorno imediato dos serviços de monitoramento de transição de estado. Isso é representado por todos os bits definidos como zero.
SCARD_STATE_IGNORE
O aplicativo não está interessado nesse leitor e não deve ser considerado durante as operações de monitoramento. Se esse valor de bit for definido, todos os outros bits serão ignorados.
SCARD_STATE_UNAVAILABLE
O aplicativo espera que esse leitor não esteja disponível para uso. Se esse bit for definido, todos os bits a seguir serão ignorados.
SCARD_STATE_EMPTY
O aplicativo espera que não haja cartão no leitor. Se esse bit for definido, todos os bits a seguir serão ignorados.
SCARD_STATE_PRESENT
O aplicativo espera que haja uma cartão no leitor.
SCARD_STATE_ATRMATCH
O aplicativo espera que haja um cartão no leitor com um ATR que corresponda a um dos cartões de destino. Se esse bit for definido, SCARD_STATE_PRESENT será assumido. Esse bit não tem significado para SCardGetStatusChange além de SCARD_STATE_PRESENT.
SCARD_STATE_EXCLUSIVE
O aplicativo espera que o cartão no leitor seja alocado para uso exclusivo por outro aplicativo. Se esse bit for definido, SCARD_STATE_PRESENT será assumido.
SCARD_STATE_INUSE
O aplicativo espera que o cartão no leitor esteja em uso por um ou mais outros aplicativos, mas pode estar conectado ao no modo compartilhado. Se esse bit for definido, SCARD_STATE_PRESENT será assumido.
SCARD_STATE_MUTE
O aplicativo espera que haja uma cartão sem resposta no leitor.
SCARD_STATE_UNPOWERED
Isso implica que a cartão no leitor não foi habilitada.

dwEventState

Estado atual do leitor, conforme conhecido pelo gerenciador de recursos de cartão inteligente. Esse campo pode assumir qualquer um dos valores a seguir, em combinação, como uma máscara de bits.

Valor Significado
SCARD_STATE_IGNORE
Esse leitor deve ser ignorado.
SCARD_STATE_CHANGED
Há uma diferença entre o estado acreditado pelo aplicativo e o estado conhecido pelo gerenciador de recursos. Quando esse bit é definido, o aplicativo pode assumir que ocorreu uma alteração significativa de estado nesse leitor.
SCARD_STATE_UNKNOWN
O nome do leitor fornecido não é reconhecido pelo gerenciador de recursos. Se esse bit for definido, SCARD_STATE_CHANGED e SCARD_STATE_IGNORE também serão definidos.
SCARD_STATE_UNAVAILABLE
O estado real desse leitor não está disponível. Se esse bit estiver definido, todos os bits a seguir serão claros.
SCARD_STATE_EMPTY
Não há cartão no leitor. Se esse bit estiver definido, todos os bits a seguir serão claros.
SCARD_STATE_PRESENT
Há um cartão no leitor.
SCARD_STATE_ATRMATCH
Há um cartão no leitor com um ATR correspondente a um dos cartões de destino. Se esse bit for definido, SCARD_STATE_PRESENT também será definido. Esse bit só é retornado na função SCardLocateCards .
SCARD_STATE_EXCLUSIVE
O cartão no leitor é alocado para uso exclusivo por outro aplicativo. Se esse bit for definido, SCARD_STATE_PRESENT também será definido.
SCARD_STATE_INUSE
O cartão no leitor está em uso por um ou mais outros aplicativos, mas pode estar conectado ao no modo compartilhado. Se esse bit for definido, SCARD_STATE_PRESENT também será definido.
SCARD_STATE_MUTE
Há uma cartão sem resposta no leitor.
SCARD_STATE_UNPOWERED
Isso implica que a cartão no leitor não foi habilitada.

cbAtr

Número de bytes no ATR retornado.

rgbAtr[36]

ATR do cartão inserido, com bytes de alinhamento extras.

Comentários

Observação

O cabeçalho winscard.h define SCARD_READERSTATE 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

   
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]
Cabeçalho winscard.h

Confira também

SCardGetStatusChange

SCardLocateCards