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


Метод ISCardDatabase::ListCards

[Метод ListCards доступен для использования в операционных системах, указанных в разделе Требования. Он недоступен для использования в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях, Windows Vista, Windows Server 2008 и последующих версиях операционной системы. Модули смарт-карт предоставляют аналогичные функциональные возможности.]

Метод ListCards извлекает все имена смарт-карта, которые соответствуют указанным идентификаторам интерфейса (GUID), указанной строке ATR или обоим.

Синтаксис

HRESULT ListCards(
  [in]  LPBYTEBUFFER pAtr,
  [in]  LPSAFEARRAY  pInterfaceGuids,
  [in]  LONG         localeId,
  [out] LPSAFEARRAY  *ppCardNames
);

Параметры

pAtr [in]

Указатель на смарт-карта строку ATR. Строка ATR должна быть упакована в IByteBuffer.

pInterfaceGuids [in]

Указатель на SAFEARRAY идентификаторов интерфейса COM (GUID) в формате BSTR.

localeId [in]

Идентификатор локализации языка.

ppCardNames [out]

Указатель на SAFEARRAY BSTR, который содержит имена смарт-карт, удовлетворяющих параметрам поиска в случае успешного выполнения; Значение NULL , если операция завершилась сбоем.

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

Метод возвращает одно из следующих возможных значений.

Код возврата Описание
S_OK
Operation completed successfully (Операция выполнена успешно).
E_INVALIDARG
Недопустимый параметр.
E_POINTER
Был передан неправильный указатель.
E_OUTOFMEMORY
Недостаточно памяти.

 

Комментарии

Чтобы получить все известные средства чтения или средства чтения, вызовите ListReaders или ListReaderGroups соответственно.

Чтобы получить основную службу или интерфейсы определенного карта GetProviderCardId или ListCardInterfaces соответственно.

Список всех методов, предоставляемых этим интерфейсом, см. в разделе ISCardDatabase.

В дополнение к приведенным выше кодам ошибок COM этот интерфейс может возвращать код ошибки смарт-карта, если для выполнения запроса была вызвана функция смарт-карта. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.

Примеры

В следующем примере показано получение имен смарт-карта, соответствующих указанной строке ATR.

// Define or determine byAtr as needed for your ATR use.
BYTE byAtr[] = {0x3b,0x27,0x00,0x80,0x65,0xa2,0x0c,0x01,0x01,0x37};
LPSAFEARRAY pSafeArray = NULL;
HRESULT          hr;

// pIByteBuff is a pointer to an instance of IByteBuffer.
hr = pIByteBuff->Initialize(sizeof(byAtr), byAtr);

// Call the function for the specified ATR.
hr = pISCDataBase->ListCards(pIByteBuff,
                             NULL,
                             0,
                             &pSafeArray);
if (FAILED(hr))
{
   printf("Failed ListCards\n");
   // Take other error handling action as needed.
}
else
{
   // Use the safe array as needed.
}

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Окончание поддержки клиентов
Windows XP
Окончание поддержки сервера
Windows Server 2003
Заголовок
Scardmgr.h
Библиотека типов
Scardmgr.tlb
DLL
Scardssp.dll
IID
IID_ISCardDatabase определяется как 1461AAC8-6810-11D0-918F-00AA00C18068

См. также раздел

GetProviderCardId

ISCardDatabase

ListCardInterfaces

ListReaderGroups

ListReaders