Compartilhar via


Método ISCard::AttachByReader

[O método AttachByReader está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele não está disponível para uso no Windows Server 2003 com Service Pack 1 (SP1) e posterior, Windows Vista, Windows Server 2008 e versões subsequentes do sistema operacional. Os Módulos de Cartão Inteligente fornecem funcionalidade semelhante.]

O método AttachByReader abre o cartão inteligente no leitor nomeado.

Sintaxe

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

Parâmetros

bstrReaderName [in]

Um BSTR que contém o nome do leitor de cartão inteligente.

ShareMode [in]

Modo no qual solicitar acesso ao cartão inteligente.

Valor Significado
EXCLUSIVO
Ninguém mais usa essa conexão com a cartão inteligente.
COMPARTILHADO
Outros aplicativos podem usar essa conexão.

 

PrefProtocol [in]

Valor de protocolo preferencial.

T0

T1

RAW

T0| T1

Valor retornado

O método retorna um dos valores possíveis a seguir.

Código de retorno Descrição
S_OK
Aberto no cartão inteligente no leitor nomeado foi concluído com êxito.
E_INVALIDARG
Há algo errado com um ou mais dos parâmetros passados para a função.

 

Comentários

Além dos códigos de erro COM listados acima, essa interface poderá retornar um código de erro de cartão inteligente se uma função de cartão inteligente tiver sido chamada para concluir a solicitação. Para obter mais informações, consulte Valores retornados de cartão inteligente.

Quando terminar de usar o leitor, libere o anexo chamando o método ISCard::D etach .

Exemplos

O exemplo a seguir mostra a anexação a uma cartão inteligente em um leitor de cartão inteligente 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 Valor
Cliente mínimo com suporte
Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2003 [somente aplicativos da área de trabalho]
Fim do suporte ao cliente
Windows XP
Fim do suporte ao servidor
Windows Server 2003
Cabeçalho
Scardmgr.h
Biblioteca de tipos
Scardmgr.tlb
DLL
Scardssp.dll
IID
IID_ISCard é definido como 1461AAC3-6810-11D0-918F-00AA00C18068

Confira também

AttachByHandle

Detach

ISCard

Reanexar