Compartir a través de


Método ISCard::AttachByReader

[El método AttachByReader está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. No está disponible para su uso en Windows Server 2003 con Service Pack 1 (SP1) y versiones posteriores, Windows Vista, Windows Server 2008 y versiones posteriores del sistema operativo. Los módulos de tarjeta inteligente proporcionan una funcionalidad similar.]

El método AttachByReader abre la tarjeta inteligente en el lector con nombre.

Sintaxis

HRESULT AttachByReader(
  [in] BSTR              bstrReaderName,
  [in] SCARD_SHARE_MODES ShareMode,
  [in] SCARD_PROTOCOLS   PrefProtocol
);

Parámetros

bstrReaderName [in]

Un BSTR que contiene el nombre del lector de tarjetas inteligentes.

ShareMode [in]

Modo en el que se va a reclamar el acceso a la tarjeta inteligente.

Valor Significado
EXCLUSIVO
Nadie más usa esta conexión a la tarjeta inteligente.
COMPARTIDO
Otras aplicaciones pueden usar esta conexión.

 

PrefProtocol [in]

Valor de protocolo preferido.

T0

T1

RAW

T0| T1

Valor devuelto

El método devuelve uno de los siguientes valores posibles.

Código devuelto Descripción
S_OK
La apertura de la tarjeta inteligente en el lector con nombre se ha completado correctamente.
E_INVALIDARG
Hay algún problema con uno o varios de los parámetros pasados a la función .

 

Comentarios

Además de los códigos de error COM enumerados anteriormente, esta interfaz puede devolver un código de error de tarjeta inteligente si se llamó a una función de tarjeta inteligente para completar la solicitud. Para obtener más información, consulte Valores devueltos de tarjeta inteligente.

Cuando haya terminado de usar el lector, libere los datos adjuntos llamando al método ISCard::D etach .

Ejemplos

En el ejemplo siguiente se muestra la conexión a una tarjeta inteligente en un lector de tarjetas inteligentes especificado.

#include <windows.h>
#include <stdio.h>
#include <Scardmgr.h>

// The reader name is vendor specific; change as needed.
#define READER_NAME L"Vendor Reader 0"

void main()
{
    BSTR     bstrReader = NULL;
    HRESULT  hr;

    bstrReader = SysAllocString(READER_NAME);
    if (NULL == bstrReader)
    {
        // Error encountered.
        exit(1);
    }

    // Connect to the reader.
    hr = pISCard->AttachByReader(bstrReader, SHARED, T0);
    if (FAILED(hr))
    {
        printf("Failed AttachByReader\n");
        // Take other error handling action.
        // ...
    }

    // Detach reader by calling ISCard::Detach (not shown).
    // ...

    // When done, free BSTR.
    if (NULL != bstrReader)
        SysFreeString(bstrReader);
}

Requisitos

Requisito Value
Cliente mínimo compatible
Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2003 [solo aplicaciones de escritorio]
Fin de compatibilidad de cliente
Windows XP
Fin de compatibilidad de servidor
Windows Server 2003
Encabezado
Scardmgr.h
Biblioteca de tipos
Scardmgr.tlb
Archivo DLL
Scardssp.dll
IID
IID_ISCard se define como 1461AAC3-6810-11D0-918F-00AA00C18068

Consulte también

AttachByHandle

Separar

ISCard

Reinstale