Función SCardGetReaderIconW (winscard.h)

La función SCardGetReaderIcon obtiene un icono del lector de tarjetas inteligentes para el nombre de un lector determinado. Esta función no afecta al estado del lector de tarjetas.

Sintaxis

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

Parámetros

[in] hContext

Identificador que identifica el contexto del administrador de recursos para la consulta. Puede establecer el contexto del administrador de recursos mediante una llamada anterior a la función SCardEstablishContext . Este parámetro no puede ser NULL.

[in] szReaderName

Nombre del lector. Para obtener este valor, llame a la función SCardListReaders .

[out] pbIcon

Puntero a un búfer que contiene un BLOB del icono de lector de tarjetas inteligentes como leído del archivo de icono. Si este valor es NULL, la función omite la longitud del búfer proporcionada en el parámetro pcbIcon , escribe la longitud del búfer que se habría devuelto a pcbIcon si este parámetro no hubiera sido NULL y devuelve un código correcto.

[in, out] pcbIcon

Longitud, en caracteres, del búfer pbIcon . Este parámetro recibe la longitud real del atributo recibido. Si la longitud del búfer se especifica como SCARD_AUTOALLOCATE, pbIcon se convierte de un puntero a un puntero de bytes y recibe la dirección de un bloque de memoria que contiene el atributo . Este bloque de memoria debe desasignarse con la función SCardFreeMemory .

Valor devuelto

Esta función devuelve valores diferentes en función de si se realiza correctamente o no.

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

El icono debe ser de 256 × 256 píxeles sin ningún canal alfa.

Ejemplos

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

Nota:

El encabezado winscard.h define SCardGetReaderIcon 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winscard.h