Função SCardGetReaderIconA (winscard.h)

A função SCardGetReaderIcon obtém um ícone do leitor de cartão inteligente para o nome de um determinado leitor. Essa função não afeta o estado do leitor de cartão.

Sintaxe

LONG SCardGetReaderIconA(
  [in]      SCARDCONTEXT hContext,
  [in]      LPCSTR       szReaderName,
  [out]     LPBYTE       pbIcon,
  [in, out] LPDWORD      pcbIcon
);

Parâmetros

[in] hContext

Identificador que identifica o contexto do gerenciador de recursos para a consulta. Você pode definir o contexto do gerenciador de recursos por uma chamada anterior para a função SCardEstablishContext . Esse parâmetro não pode ser NULL.

[in] szReaderName

Nome do leitor. Você pode obter esse valor chamando a função SCardListReaders .

[out] pbIcon

Ponteiro para um buffer que contém um BLOB do ícone de leitor de cartão inteligente, conforme lido no arquivo de ícone. Se esse valor for NULL, a função ignorará o comprimento do buffer fornecido no parâmetro pcbIcon , gravará o comprimento do buffer que teria sido retornado ao pcbIcon se esse parâmetro não tivesse sido NULL e retornará um código de êxito.

[in, out] pcbIcon

Comprimento, em caracteres, do buffer pbIcon . Esse parâmetro recebe o comprimento real do atributo recebido. Se o comprimento do buffer for especificado como SCARD_AUTOALLOCATE, pbIcon será convertido de um ponteiro para um ponteiro de bytes e receberá o endereço de um bloco de memória que contém o atributo . Esse bloco de memória deve ser desalocado com a função SCardFreeMemory .

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

O ícone deve ter 256 × 256 pixels sem canal alfa.

Exemplos

PBYTE    pbIcon = NULL;
DWORD    cbIcon = SCARD_AUTOALLOCATE;
DWORD    i;
LONG     lReturn;
LPTSTR   szReaderName = "USB Smart Card Reader 0";

// Retrieve the reader's icon.
// hContext was set by a previous call to SCardEstablishContext.
lReturn = SCardGetReaderIcon(hContext,
                         szReaderName,
                         (PBYTE)&pbIcon,
                         &cbIcon);

if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetReaderIcon - %x\n", lReturn);
    // Take appropriate action.
}
else
{
    // Free the memory when done. 
    lReturn = SCardFreeMemory(hContext, pbIcon);
}

Observação

O cabeçalho winscard.h define SCardGetReaderIcon 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 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winscard.h