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


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

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

Синтаксис

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

Параметры

[in] hContext

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

[in] szReaderName

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

[out] pbIcon

Указатель на буфер, содержащий БОЛЬШОЙ ДВОИЧНЫй объект значка средства чтения смарт-карт, как считывается из файла значка. Если это значение равно NULL, функция игнорирует длину буфера, указанную в параметре pcbIcon, записывает длину буфера, который был возвращен в pcbIcon, если этот параметр не был NULL, и возвращает код успешного выполнения.

[in, out] pcbIcon

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

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

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

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

Замечания

Значок должен составлять 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 [только классические приложения]
целевая платформа Виндоус
заголовка winscard.h