Функция SCardListInterfacesA (winscard.h)
Функция SCardListInterfaces предоставляет список интерфейсов, предоставляемых заданной карта.
Вызывающий объект предоставляет имя смарт-карта, ранее появившиеся в подсистеме, и получает список интерфейсов, поддерживаемых карта.
Синтаксис
LONG SCardListInterfacesA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szCard,
[out] LPGUID pguidInterfaces,
[in, out] LPDWORD pcguidInterfaces
);
Параметры
[in] hContext
Дескриптор, определяющий контекст диспетчера ресурсов для запроса. Контекст диспетчера ресурсов можно задать с помощью предыдущего вызова SCardEstablishContext. Этот параметр не может иметь значение NULL.
[in] szCard
Имя смарт-карта уже представлено в подсистеме интеллектуального карта.
[out] pguidInterfaces
Массив идентификаторов интерфейса (GUID), указывающих интерфейсы, поддерживаемые смарт-карта. Если это значение равно NULL, SCardListInterfaces игнорирует длину массива, указанную в pcguidInterfaces, возвращая размер массива, который был бы возвращен, если бы этот параметр не имел значения NULL для pcguidInterfaces и кода успешного выполнения.
[in, out] pcguidInterfaces
Размер массива pcguidInterfaces и получает фактический размер возвращаемого массива. Если размер массива указан как SCARD_AUTOALLOCATE, то pcguidInterfaces преобразуется в указатель на указатель GUID и получает адрес блока памяти, содержащего массив. Этот блок памяти должен быть освобожден с помощью SCardFreeMemory.
Возвращаемое значение
Эта функция возвращает различные значения в зависимости от того, успешно или неудачно.
Код возврата | Описание |
---|---|
|
SCARD_S_SUCCESS. |
|
Код ошибки. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты. |
Комментарии
Эта функция не перенаправляется, но вызов функции при попытке сеанса удаленного рабочего стола не приведет к ошибке. Это означает только, что результат будет получен с удаленного компьютера, а не с локального компьютера.
Функция SCardListInterfaces — это функция запроса базы данных. Дополнительные сведения о других функциях запросов базы данных см. в разделе Функции запросов к базе данных смарт-карт.
Примеры
В следующем примере показан список интерфейсов для интеллектуального карта.
LPGUID pGuids = NULL;
LONG lReturn;
DWORD cGuid = SCARD_AUTOALLOCATE;
// Retrieve the list of interfaces.
lReturn = SCardListInterfaces(NULL,
(LPCSTR) "MyCard",
(LPGUID)&pGuids,
&cGuid );
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardListInterfaces\n");
exit(1); // Or other appropriate action
}
if ( 0 != cGuid )
{
// Do something with the array of Guids.
// Remember to free pGuids when done (by SCardFreeMemory).
// ...
}
Примечание
Заголовок winscard.h определяет SCardListInterfaces в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | winscard.h |
Библиотека | Winscard.lib |
DLL | Winscard.dll |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по