Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция SCardGetAttrib извлекает текущие атрибуты средства чтения для заданного дескриптора. Это не влияет на состояниесредства чтения, драйвера или карта.
Синтаксис
LONG SCardGetAttrib(
[in] SCARDHANDLE hCard,
[in] DWORD dwAttrId,
[out] LPBYTE pbAttr,
[in, out] LPDWORD pcbAttrLen
);
Параметры
[in] hCard
Значение ссылки, возвращаемое из SCardConnect.
[in] dwAttrId
Идентификатор получаемого атрибута . В следующей таблице перечислены возможные значения для dwAttrId. Эти значения доступны только для чтения. Обратите внимание, что поставщики могут поддерживать не все атрибуты.
Значение | Значение |
---|---|
|
Ответ на сброс строки (ATR). |
|
DWORD закодирован как 0xDDDDCCCC, где DDDD = тип канала данных и CCCC = номер канала:
|
|
DWORD , указывающий, какие механические характеристики поддерживаются. Если значение равно нулю, специальные характеристики не поддерживаются. Обратите внимание, что можно задать несколько битов:
|
|
Текущее время ожидания блока. |
|
Текущая тактовая частота в кГц. |
|
Время ожидания текущего символа. |
|
Коэффициент преобразования скорости бита. |
|
Кодирование текущего элемента управления блоком ошибок.
0 = продольная избыточность проверка (LRC) 1 = циклическая избыточность проверка (CRC) |
|
Коэффициент преобразования часов. |
|
Текущий размер байтов для размера информационного поля карта. |
|
Текущий размер байтов для устройства с размером информационного поля. |
|
Текущее время охраны. |
|
DWORD закодирован как 0x0rrrpppp, где rrr — RFU и должен быть 0x000. pppp кодирует текущий тип протокола. Какой бы бит ни был задан, указывает, какой протокол ISO используется в настоящее время. (Например, если задан нулевой бит, действует протокол T=0 .) |
|
Текущее время ожидания работы. |
|
Тактовая частота по умолчанию в кГц. |
|
Скорость передачи данных по умолчанию в битах. |
|
Отображаемое имя читателя. |
|
Зарезервировано для последующего использования. |
|
Системное имя читателя. |
|
Экземпляр средства чтения этого поставщика, подключенный к компьютеру. Первым экземпляром будет устройство 0, следующим будет единица 1 (если это та же торговая марка средства чтения) и т. д. Два разных бренда читателей будут иметь ноль для этого значения. |
|
Один байт. Ноль, если интеллектуальный карта электрический контакт не активен; ненулевое значение, если контакт активен. |
|
Один байт, указывающий на присутствие смарт-карта: 0 = отсутствует 1 = карта присутствует, но не проглатывается (применяется только в том случае, если средство чтения поддерживает интеллектуальное карта глотание) 2 = карта присутствует (и проглатывается, если средство чтения поддерживает интеллектуальное карта глотание) 4 = карта конфискованы. |
|
Один байт, указывающий тип смарт-карта: 0 = неизвестный тип 1 = 7816 Асинхронный 2 = 7816 Синхронный Другие значения РФС. |
|
Максимальная тактовая частота в кГц. |
|
Максимальная скорость передачи данных в бит/с. |
|
Максимальное число байтов для устройства с размером информационного файла. |
|
Ноль, если устройство не поддерживает выключение питания при вставке смарт-карта. Ненулевое значение в противном случае. |
|
DWORD закодирован как 0x0rrrpppp, где rrr — RFU и должен быть 0x000. pppp кодирует поддерживаемые типы протоколов. Значение "1" в заданной позиции бита указывает на поддержку связанного протокола ISO, поэтому если заданы биты ноль и один, поддерживаются протоколы T=0 и T=1 . |
|
Серийный номер устройства интерфейса, предоставленного поставщиком. |
|
Предоставленный поставщиком тип устройства интерфейса (обозначение модели средства чтения). |
|
Версия устройства интерфейса, предоставляемая поставщиком (DWORD в формате 0xMMmmbbbb , где MM = основная версия, mm = дополнительный номер версии, а bbbb = номер сборки). |
|
Имя поставщика. |
[out] pbAttr
Указатель на буфер, который получает атрибут, идентификатор которого указан в dwAttrId. Если это значение равно NULL, SCardGetAttrib игнорирует длину буфера, указанную в pcbAttrLen, записывает длину буфера, который был бы возвращен, если бы этот параметр не имел значения NULL в pcbAttrLen, и возвращает код успешного выполнения.
[in, out] pcbAttrLen
Длина буфера pbAttr в байтах и получает фактическую длину полученного атрибута. Если длина буфера указана как SCARD_AUTOALLOCATE, то pbAttr преобразуется в указатель на указатель байта и получает адрес блока памяти, содержащего атрибут . Этот блок памяти должен быть освобожден с помощью SCardFreeMemory.
Возвращаемое значение
Эта функция возвращает различные значения в зависимости от того, является ли она успешной или неудачной.
Код возврата | Описание |
---|---|
|
SCARD_S_SUCCESS. |
|
ERROR_NOT_SUPPORTED. |
|
Код ошибки. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты. |
Комментарии
Функция SCardGetAttrib является функцией прямого доступа карта. Дополнительные сведения о других функциях прямого доступа см. в разделе Функции прямого доступа к карточкам.
Примеры
В следующем примере показано, как получить атрибут для карта средства чтения. В примере предполагается, что hCardHandle является допустимым дескриптором, полученным из предыдущего вызова функции SCardConnect .
LPBYTE pbAttr = NULL;
DWORD cByte = SCARD_AUTOALLOCATE;
DWORD i;
LONG lReturn;
lReturn = SCardGetAttrib(hCardHandle,
SCARD_ATTR_VENDOR_NAME,
(LPBYTE)&pbAttr,
&cByte);
if ( SCARD_S_SUCCESS != lReturn )
{
if ( ERROR_NOT_SUPPORTED == lReturn )
printf("Value not supported\n");
else
{
// Some other error occurred.
printf("Failed SCardGetAttrib - %x\n", lReturn);
exit(1); // Or other appropriate action
}
}
else
{
// Output the bytes.
for (i = 0; i < cByte; i++)
printf("%c", *(pbAttr+i));
printf("\n");
// Free the memory when done.
// hContext was set earlier by SCardEstablishContext
lReturn = SCardFreeMemory( hContext, pbAttr );
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | winscard.h |
Библиотека | Winscard.lib |
DLL | Winscard.dll |