SCARD_READERSTATEA estrutura (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 seguintes valores, 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 estiver definido, todos os bits a seguir serão ignorados.
SCARD_STATE_EMPTY
O aplicativo espera que não haja nenhum cartão no leitor. Se esse bit estiver definido, todos os bits a seguir serão ignorados.
SCARD_STATE_PRESENT
O aplicativo espera que haja um 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 estiver definido, SCARD_STATE_PRESENT será assumido. Esse bit não tem nenhum 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 estiver 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 no modo compartilhado. Se esse bit estiver definido, SCARD_STATE_PRESENT será assumido.
SCARD_STATE_MUTE
O aplicativo espera que haja um cartão sem resposta no leitor.
SCARD_STATE_UNPOWERED
Isso implica que o cartão no leitor não foi habilitado.

dwEventState

Estado atual do leitor, como conhecido pelo gerenciador de recursos de cartão inteligente. Esse campo pode assumir qualquer um dos seguintes valores, 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 estiver 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 limpos.
SCARD_STATE_EMPTY
Não há nenhum cartão no leitor. Se esse bit estiver definido, todos os bits a seguir ficarã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 estiver 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 estiver 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 no modo compartilhado. Se esse bit estiver definido, SCARD_STATE_PRESENT também será definido.
SCARD_STATE_MUTE
Há um cartão sem resposta no leitor.
SCARD_STATE_UNPOWERED
Isso implica que o cartão no leitor não foi habilitado.

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