Función SCardIntroduceReaderA (winscard.h)

La función SCardIntroduceReader presenta un nuevo nombre para un lector de tarjetas inteligentes existente.

Nota Los lectores de tarjetas inteligentes se introducen automáticamente en el sistema; El programa de instalación de un proveedor de tarjetas inteligentes también puede introducir un lector de tarjetas inteligentes en el sistema.
 

Sintaxis

LONG SCardIntroduceReaderA(
  [in] SCARDCONTEXT hContext,
  [in] LPCSTR       szReaderName,
  [in] LPCSTR       szDeviceName
);

Parámetros

[in] hContext

Identificador que identifica el contexto del administrador de recursos. El contexto del administrador de recursos se establece mediante una llamada anterior a SCardEstablishContext. Este parámetro no puede ser NULL.

[in] szReaderName

Nombre para mostrar que se asignará al lector.

[in] szDeviceName

Nombre del sistema del lector de tarjetas inteligentes, por ejemplo, "MyReader 01".

Valor devuelto

Esta función devuelve valores diferentes en función de si se realiza correctamente o se produce un error.

Código devuelto Descripción
Success
SCARD_S_SUCCESS.
Error
Código de error. Para obtener más información, consulte Valores devueltos de tarjeta inteligente.

Comentarios

Todos los lectores instalados en el sistema se introducen automáticamente por su nombre de sistema. Normalmente, solo se llama a SCardIntroduceReader para cambiar el nombre de un lector existente.

La función SCardIntroduceReader es una función de administración de bases de datos. Para obtener más información sobre otras funciones de administración de bases de datos, consulte Funciones de administración de bases de datos de tarjeta inteligente.

Para quitar un lector, use SCardForgetReader.

Ejemplos

En el ejemplo siguiente se muestra la introducción de un lector de tarjetas inteligentes.

// 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

El encabezado winscard.h define SCardIntroduceReader como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winscard.h
Library Winscard.lib
Archivo DLL Winscard.dll

Consulte también

SCardEstablishContext

SCardForgetReader

SCardIntroduceCardType

SCardIntroduceReaderGroup