estrutura SCARD_READER_CAPABILITIES (smclib.h)
A estrutura SCARD_READER_CAPABILITIES contém informações de estado sobre o leitor de cartão inteligente.
Sintaxe
typedef struct _SCARD_READER_CAPABILITIES {
ULONG SupportedProtocols;
ULONG Reserved;
ULONG ReaderType;
ULONG MechProperties;
ULONG CurrentState;
ULONG Channel;
struct {
ULONG Default;
ULONG Max;
} CLKFrequency;
struct {
ULONG Default;
ULONG Max;
} DataRate;
ULONG MaxIFSD;
ULONG PowerMgmtSupport;
ULONG CardConfiscated;
struct {
PULONG List;
UCHAR Entries;
} DataRatesSupported;
_DataRatesSupported _DataRatesSupported;
struct {
PULONG List;
UCHAR Entries;
} CLKFrequenciesSupported;
_CLKFrequenciesSupported _CLKFrequenciesSupported;
UCHAR Reserved1[100 - sizeof(ULONG)- sizeof(struct _DataRatesSupported)- sizeof(struct _CLKFrequenciesSupported)];
} SCARD_READER_CAPABILITIES, *PSCARD_READER_CAPABILITIES;
Membros
SupportedProtocols
Deve ser definido como uma máscara de bits que reflita os protocolos assíncronos ou síncronos aos quais o leitor de cartão e o driver de leitor de cartão dão suporte. Esse membro é necessário.
Reserved
Reservado para uso do sistema.
ReaderType
Esse membro contém o tipo de leitor e é necessário. Esse membro pode ter um dos valores na tabela a seguir.
Valor | Significado |
---|---|
SCARD_READER_TYPE_SERIAL | Leitor de série |
SCARD_READER_TYPE_PCMCIA | Leitor PCMCIA |
SCARD_READER_TYPE_KEYBOARD | Leitor anexado ao teclado |
SCARD_READER_TYPE_USB | Leitor de USB |
SCARD_READER_TYPE_PARALELL | Leitor paralelo |
SCARD_READER_TYPE_SCSI | Leitor SCSI |
SCARD_READER_TYPE_IDE | Leitor de IDE |
SCARD_READER_TYPE_TPM | Leitor que usa um chip TPM para armazenamento de material de chave e operações criptográficas |
SCARD_READER_TYPE_VENDOR | Leitor que usa um barramento de fornecedor proprietário |
MechProperties
Contém um valor formado usando um OR bit a bit de todas as propriedades de leitor aplicáveis mostradas na tabela a seguir. Esse membro é opcional.
Valor | Significado |
---|---|
SCARD_READER_SWALLOWS | O leitor tem um mecanismo de deglutição. |
SCARD_READER_EJECTS | O leitor pode ejetar o cartão inteligente. |
SCARD_READER_CONFISCATES | O leitor pode engolir o cartão inteligente. |
CurrentState
Esse membro contém o status do cartão e é necessário. Esse membro pode ter um dos valores listados na tabela a seguir.
Estado | Significado |
---|---|
SCARD_UNKNOWN | O leitor não tem informações sobre o status. |
SCARD_ABSENT | Nenhum cartão inteligente é inserido. |
SCARD_PRESENT | Um cartão inteligente é inserido. |
SCARD_SWALLOWED | Um cartão inteligente é inserido e o leitor o engoliu. |
SCARD_POWERED | O cartão inteligente está ativado, mas o leitor não reconhece seu modo. |
SCARD_NEGOTIABLE | Um cartão inteligente é inserido e aguarda a negociação de protocolo. |
SCARD_SPECIFIC | Um cartão inteligente é inserido e um protocolo foi selecionado. |
O acesso a esse campo deve ser sequencializado usando o bloqueio de rotação apontado pelo osData-> membro do SMARTCARD_EXTENSION.
Channel
Contém o número do canal lógico. Esse membro é opcional. O significado exato desse membro depende do tipo de cartão inteligente, conforme mostrado na tabela a seguir.
Tipo de cartão inteligente | Significado do valor no campo de canal |
---|---|
Leitor de série | Número da porta |
Leitor paralelo | Número da porta |
Leitor SCSI | SCSI ID |
Leitor de teclado | 0 |
Leitor de USB | Número do dispositivo |
Para obter mais informações, consulte a Parte 3 da especificação de interoperabilidade para ICCs e sistemas de computador pessoais.
CLKFrequency
Uma estrutura com os seguintes membros:
CLKFrequency.Default
Contém a frequência de relógio padrão na qual o leitor é executado, em quilohertz, e codificado em formato little-endian. Por exemplo, 3,58 MHz é codificado como 3580. Esse membro é necessário.
CLKFrequency.Max
Contém a frequência máxima do relógio na qual o leitor pode executar, em quilohertz, e codificado em formato little-endian. Esse membro é necessário.
DataRate
Uma estrutura com os seguintes membros:
DataRate.Default
Contém a taxa de dados padrão do leitor, em unidades de bits por segundo, e codificada em formato little-endian. Esse membro é necessário.
DataRate.Max
Contém a taxa máxima de dados do leitor, em unidades de bits por segundo, e codificada em formato little-endian. Esse membro é necessário.
MaxIFSD
Contém o tamanho máximo do buffer do leitor. Esse valor informa o cartão inteligente no início de uma transmissão T=1 do número máximo de bytes que podem ser recebidos em um pacote. Esse membro é necessário.
PowerMgmtSupport
Indica o tipo de gerenciamento de energia compatível com o cartão. Um valor zero indica que o cartão inteligente não dá suporte ao gerenciamento de energia.
CardConfiscated
Se verdadeiro, indica que o cartão inteligente foi confiscado.
DataRatesSupported
Uma estrutura com os seguintes membros:
DataRatesSupported.List
Contém uma lista de taxas de dados, em bits por segundo, que são compatíveis com o leitor. Esse membro é usado com a solicitação PTS. O driver de leitor geralmente define esse membro como um ponteiro para uma matriz estática de valores longos sem sinal que contêm as taxas de dados com suporte. Se o leitor não der suporte a diferentes taxas de dados, deixe esse membro vazio. Esse membro é opcional.
DataRatesSupported.Entries
Contém o número de entradas de lista vinculada em DataRatesSupported.List. Esse membro é opcional.
_DataRatesSupported
Uma estrutura com os seguintes membros:
CLKFrequenciesSupported
Uma estrutura com os seguintes membros:
CLKFrequenciesSupported.List
Contém uma lista de frequências de relógio, em quilohertz, que são compatíveis com o leitor. Esse membro é usado com a solicitação PTS. O driver geralmente define esse membro como um ponteiro para uma matriz estática de valores longos sem sinal que contêm as frequências de relógio compatíveis. Se o leitor não der suporte a diferentes frequências de relógio, deixe esse membro vazio. Esse membro é opcional.
CLKFrequenciesSupported.Entries
Contém o número de entradas de lista vinculada de CLKFrquenciesSupported.List. Esse membro é opcional.
_CLKFrequenciesSupported
Uma estrutura com os seguintes membros:
Reserved1[100 - sizeof(ULONG)- sizeof(struct _DataRatesSupported)- sizeof(struct _CLKFrequenciesSupported)]
Reservado para uso do sistema.
Observações
Essa estrutura deve ser mantida pelo driver de leitor de cartão inteligente.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | smclib.h (inclua Smclib.h) |