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


Функция SCardIntroduceCardTypeA (winscard.h)

Функция SCardIntroduceCardType представляет смарт-карты подсистеме смарт-карт (для активного пользователя), добавив ее в базу данных смарт-карт.

Синтаксис

LONG SCardIntroduceCardTypeA(
  [in]           SCARDCONTEXT hContext,
  [in]           LPCSTR       szCardName,
  [in, optional] LPCGUID      pguidPrimaryProvider,
  [in, optional] LPCGUID      rgguidInterfaces,
  [in]           DWORD        dwInterfaceCount,
  [in]           LPCBYTE      pbAtr,
  [in]           LPCBYTE      pbAtrMask,
  [in]           DWORD        cbAtrLen
);

Параметры

[in] hContext

Дескриптор, определяющий контекст диспетчера ресурсов . Контекст диспетчера ресурсов задается предыдущим вызовом SCardEstablishContext. Этот параметр не может быть значение NULL.

[in] szCardName

Имя, с помощью которого пользователь может распознать карточку.

[in, optional] pguidPrimaryProvider

Указатель на идентификатор (GUID) для основного поставщика услуг смарт-карты.

[in, optional] rgguidInterfaces

Массив идентификаторов (GUID), определяющий интерфейсы, поддерживаемые смарт-картой.

[in] dwInterfaceCount

Число идентификаторов в массиве rgguidInterfaces.

[in] pbAtr

строки ATR, которые можно использовать для сопоставления при запросе базы данных смарт-карт (дополнительные сведения см. в SCardListCards). Длина этой строки определяется обычным анализом ATR.

[in] pbAtrMask

Необязательная битовая маска, используемая при сравнении ATR смарт-карт с ATR, предоставленной в pbAtr. Если это значение не являетсяNULL, оно должно указывать на строку байтов ту же длину, что и строка ATR, указанная в pbAtr. Если заданная строка ATR A сравнивается с ATR, предоставленной в pbAtr, оно совпадает только в том случае, если A & M = pbAtr, где M является предоставленной маской, а & представляет побитовую маску И.

[in] cbAtrLen

Длина ATR и необязательной маски ATR. Если это значение равно нулю, длина ATR определяется обычным анализом ATR. Это значение не может быть равно нулю, если задано значение pbAtr.

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

Эта функция возвращает разные значения в зависимости от того, выполнена ли она успешно или завершается сбоем.

Возвращаемый код Описание
успех
SCARD_S_SUCCESS.
сбоя
Код ошибки. Дополнительные сведения см. в возвращаемых значений смарт-карт.

Замечания

Эта функция не перенаправляется, но вызов функции при выполнении сеанса удаленного рабочего стола не приведет к ошибке. Это означает, что результат будет только с удаленного компьютера вместо локального компьютера.

Функция SCardIntroduceCardType — это функция управления базами данных. Дополнительные сведения о других функциях управления базами данных см. в функциях управления базами данных смарт-карт.

Чтобы удалить смарт-карту, используйте SCardForgetCardType.

Примеры

В следующем примере показано, как ввести тип карточки. В примере предполагается, что hContext является допустимым дескриптором, полученным из предыдущего вызова функции SCardEstablishContext.

GUID  MyGuid = { 0xABCDEF00,
                 0xABCD,
                 0xABCD,
                 0xAA, 0xBB, 0xCC, 0xDD,
                 0xAA, 0xBB, 0xCC, 0xDD };

static const BYTE MyATR[] =     { 0xaa, 0xbb, 0xcc, 0x00, 0xdd };
static const BYTE MyATRMask[] = { 0xff, 0xff, 0xff, 0x00, 0xff};

LONG            lReturn;

lReturn = SCardIntroduceCardType(hContext, 
                                 L"MyCardName",
                                 &MyGuid,
                                 NULL,    // No interface array
                                 0,       // Interface count = 0
                                 MyATR,
                                 MyATRMask,
                                 sizeof(MyATR));
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardIntroduceCardType\n");

Заметка

Заголовок winscard.h определяет SCardIntroduceCardType как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка winscard.h
библиотеки Winscard.lib
DLL Winscard.dll

См. также

SCardEstablishContext

SCardForgetCardType

SCardIntroduceReader

SCardIntroduceReaderGroup

SCardListCards