Compartilhar via


Função SCardIntroduceReaderA (winscard.h)

A função SCardIntroduceReader apresenta um novo nome para um leitor dede cartão inteligente existente.

Observação leitores de cartão inteligente são introduzidos automaticamente no sistema; O 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 SCardIntroduceReaderA(
  [in] SCARDCONTEXT hContext,
  [in] LPCSTR       szReaderName,
  [in] LPCSTR       szDeviceName
);

Parâmetros

[in] hContext

Identificador que identifica ode 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".

Valor de retorno

Essa função retorna valores diferentes dependendo se ela é bem-sucedida ou falha.

Código de retorno Descrição
de sucesso do
SCARD_S_SUCCESS.
de falha do
Um código de erro. Para obter mais informações, consulte valores de retorno de cartão inteligente.

Observações

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 );

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows XP [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2003 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho winscard.h
biblioteca Winscard.lib
de DLL Winscard.dll

Consulte também

SCardEstablishContext

SCardForgetReader

SCardIntroduceCardType

SCardIntroduceReaderGroup