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