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


Функция 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

Дескриптор, идентифицирующий контекст resource manager. Контекст диспетчера ресурсов задается при предыдущем вызове 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.
Failure
Код ошибки. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.

Комментарии

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

Функция 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 или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winscard.h
Библиотека Winscard.lib
DLL Winscard.dll

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

SCardEstablishContext

SCardForgetCardType

SCardIntroduceReader

SCardIntroduceReaderGroup

SCardListCards