Поделиться через


Метод ISCard::AttachByReader

[Метод AttachByReader доступен для использования в операционных системах, указанных в разделе Требования. Он недоступен для использования в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях, Windows Vista, Windows Server 2008 и последующих версиях операционной системы. Модули смарт-карт предоставляют аналогичные функциональные возможности.]

Метод AttachByReader открывает смарт-карта в именованном средстве чтения.

Синтаксис

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

Параметры

bstrReaderName [in]

Строка BSTR, содержащая имя средства чтения смарт-карта.

ShareMode [in]

Режим, в котором запрашивать доступ к смарт-карта.

Значение Значение
ЭКСКЛЮЗИВНЫЕ
Никто больше не использует это подключение к смарт-карта.
ОБЩИЙ
Другие приложения могут использовать это подключение.

 

PrefProtocol [in]

Предпочтительное значение протокола.

T0

T1

RAW

T0| T1

Возвращаемое значение

Метод возвращает одно из следующих возможных значений.

Код возврата Описание
S_OK
Открытие в смарт-карта в именованном средстве чтения успешно завершено.
E_INVALIDARG
Что-то не так с одним или несколькими параметрами, переданными в функцию.

 

Комментарии

Помимо кодов ошибок COM, перечисленных выше, этот интерфейс может возвращать код ошибки смарт-карта, если для выполнения запроса была вызвана функция смарт-карта. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.

Завершив использование средства чтения, отпустите вложение, вызвав метод ISCard::D etach .

Примеры

В следующем примере показано присоединение к смарт-карта в указанном средстве чтения смарт-карта.

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

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Окончание поддержки клиентов
Windows XP
Окончание поддержки сервера
Windows Server 2003
Заголовок
Scardmgr.h
Библиотека типов
Scardmgr.tlb
DLL
Scardssp.dll
IID
IID_ISCard определяется как 1461AAC3-6810-11D0-918F-00AA00C18068

См. также раздел

AttachByHandle

Отсоединить

ISCard

Повторно подключить