Função SCardIntroduceReaderW (winscard.h)

A função SCardIntroduceReader apresenta um novo nome para um smart cartãoreader existente.

Nota Leitores de cartão inteligentes são introduzidos automaticamente no sistema; um programa de instalação de um fornecedor de leitor de cartão inteligente também pode introduzir um leitor de cartão inteligente ao sistema.
 

Sintaxe

LONG SCardIntroduceReaderW(
  [in] SCARDCONTEXT hContext,
  [in] LPCWSTR      szReaderName,
  [in] LPCWSTR      szDeviceName
);

Parâmetros

[in] hContext

Identificador que identifica o contexto do gerenciador de recursos. O contexto do gerenciador de recursos é definido por uma chamada anterior para SCardEstablishContext. Esse parâmetro não pode ser NULL.

[in] szReaderName

Nome de exibição a ser atribuído ao leitor.

[in] szDeviceName

Nome do sistema do leitor de cartão inteligente, por exemplo, "MyReader 01".

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

Todos os leitores instalados no sistema são introduzidos automaticamente pelo nome do sistema. Normalmente, SCardIntroduceReader é chamado apenas para alterar o nome de um leitor existente.

A função SCardIntroduceReader é uma função de gerenciamento de banco de dados. Para obter mais informações sobre outras funções de gerenciamento de banco de dados, consulte Funções de gerenciamento de banco de dados de cartão inteligente.

Para remover um leitor, use SCardForgetReader.

Exemplos

O exemplo a seguir mostra a introdução de um leitor de cartão inteligente.

// This example renames the reader name.
// This is a two-step process (first add the new
// name, then forget the old name).
LPBYTE    pbAttr = NULL;
DWORD     cByte = SCARD_AUTOALLOCATE;
LONG      lReturn;

// Step 1: Add the new reader name.
// The device name attribute is a necessary value.
// hCardHandle was set by a previous call to SCardConnect.
lReturn = SCardGetAttrib(hCardHandle,
                         SCARD_ATTR_DEVICE_SYSTEM_NAME,
                         (LPBYTE)&pbAttr,
                         &cByte);
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetAttrib\n");
    exit(1);  // Or other error action
}
// Add the reader name.
// hContext was set earlier by SCardEstablishContext.
lReturn = SCardIntroduceReader(hContext,
                               TEXT("My New Reader Name"),
                               (LPCTSTR)pbAttr );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardIntroduceReader\n");
    exit(1);  // Or other error action
}

// Step 2: Forget the old reader name.
lReturn = SCardForgetReader(hContext,
                            (LPCTSTR)pbAttr );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardForgetReader\n");
    exit(1);  // Or other error action
}

// Free the memory when done.
lReturn = SCardFreeMemory( hContext, pbAttr );

Observação

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

Scardestablishcontext

SCardForgetReader

SCardIntroduceCardType

SCardIntroduceReaderGroup