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