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


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

Функция SCardGetReaderIcon получает значок средства чтения смарт-карта для имени данного средства чтения. Эта функция не влияет на состояние карта средства чтения.

Синтаксис

LONG SCardGetReaderIconA(
  [in]      SCARDCONTEXT hContext,
  [in]      LPCSTR       szReaderName,
  [out]     LPBYTE       pbIcon,
  [in, out] LPDWORD      pcbIcon
);

Параметры

[in] hContext

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

[in] szReaderName

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

[out] pbIcon

Указатель на буфер, содержащий большой двоичный объект значка средства чтения смарт-карта, считываемого из файла значка. Если это значение равно NULL, функция игнорирует длину буфера, указанную в параметре pcbIcon , записывает длину буфера, который был бы возвращен pcbIcon , если бы этот параметр не имел значение NULL, и возвращает код успешного выполнения.

[in, out] pcbIcon

Длина буфера pbIcon (в символах). Этот параметр получает фактическую длину полученного атрибута. Если длина буфера указана как SCARD_AUTOALLOCATE, то pbIcon преобразуется из указателя в указатель байта и получает адрес блока памяти, содержащего атрибут . Этот блок памяти должен быть освобожден с помощью функции SCardFreeMemory .

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

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

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

Комментарии

Значок должен иметь размер 256 × 256 пикселей без альфа-канала.

Примеры

PBYTE    pbIcon = NULL;
DWORD    cbIcon = SCARD_AUTOALLOCATE;
DWORD    i;
LONG     lReturn;
LPTSTR   szReaderName = "USB Smart Card Reader 0";

// Retrieve the reader's icon.
// hContext was set by a previous call to SCardEstablishContext.
lReturn = SCardGetReaderIcon(hContext,
                         szReaderName,
                         (PBYTE)&pbIcon,
                         &cbIcon);

if ( SCARD_S_SUCCESS != lReturn )
{
    printf("Failed SCardGetReaderIcon - %x\n", lReturn);
    // Take appropriate action.
}
else
{
    // Free the memory when done. 
    lReturn = SCardFreeMemory(hContext, pbIcon);
}

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header winscard.h