Función SCardListInterfacesW (winscard.h)

La función SCardListInterfaces proporciona una lista de interfaces proporcionadas por una tarjeta determinada.

El autor de la llamada proporciona el nombre de una tarjeta inteligente introducida anteriormente en el subsistema y recibe la lista de interfaces admitidas por la tarjeta.

Sintaxis

LONG SCardListInterfacesW(
  [in]      SCARDCONTEXT hContext,
  [in]      LPCWSTR      szCard,
  [out]     LPGUID       pguidInterfaces,
  [in, out] LPDWORD      pcguidInterfaces
);

Parámetros

[in] hContext

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

[in] szCard

Nombre de la tarjeta inteligente ya introducida en el subsistema de tarjetas inteligentes.

[out] pguidInterfaces

Matriz de identificadores de interfaz (GUID) que indican las interfaces admitidas por la tarjeta inteligente. Si este valor es NULL, SCardListInterfaces omite la longitud de la matriz proporcionada en pcguidInterfaces, devolviendo el tamaño de la matriz que se habría devuelto si este parámetro no hubiera sido NULL para pcguidInterfaces y un código correcto.

[in, out] pcguidInterfaces

Tamaño de la matriz pcguidInterfaces y recibe el tamaño real de la matriz devuelta. Si el tamaño de la matriz se especifica como SCARD_AUTOALLOCATE, pcguidInterfaces se convierte en un puntero a un puntero GUID y recibe la dirección de un bloque de memoria que contiene la matriz. Este bloque de memoria debe desasignarse con SCardFreeMemory.

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

Esta función no se redirige, pero si se llama a la función al intentar una sesión de Escritorio remoto, no se producirá un error. Solo significa que el resultado será del equipo remoto en lugar del equipo local.

La función SCardListInterfaces es una función de consulta de base de datos. Para obtener más información sobre otras funciones de consulta de base de datos, consulte Funciones de consulta de base de datos de tarjeta inteligente.

Ejemplos

En el ejemplo siguiente se muestran las interfaces de una tarjeta inteligente.

LPGUID          pGuids = NULL;
LONG            lReturn;
DWORD           cGuid = SCARD_AUTOALLOCATE;

// Retrieve the list of interfaces.
lReturn = SCardListInterfaces(NULL,
                              (LPCSTR) "MyCard",
                              (LPGUID)&pGuids,
                              &cGuid );
if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardListInterfaces\n");
    exit(1);   // Or other appropriate action
}

if ( 0 != cGuid )
{
    // Do something with the array of Guids.
    // Remember to free pGuids when done (by SCardFreeMemory).
    // ...
}

Nota:

El encabezado winscard.h define SCardListInterfaces 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

   
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

SCardFreeMemory

SCardGetProviderId

SCardListCards

SCardListReaderGroups

SCardListReaders