다음을 통해 공유


ISCardDatabase::ListCards 메서드

[ ListCards 메서드는 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. Windows Server 2003 SP1(서비스 팩 1) 이상, 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]

BSTR 형식의 GUID(COM 인터페이스 식별자)의 SAFEARRAY에 대한 포인터입니다.

localeId [in]

언어 지역화 식별자입니다.

ppCardNames [out]

성공하면 검색 매개 변수를 충족하는 스마트 카드의 이름을 포함하는 BSTR의 SAFEARRAY에 대한 포인터입니다. 작업이 실패한 경우 NULL 입니다.

반환 값

메서드는 다음 가능한 값 중 하나를 반환합니다.

반환 코드 Description
S_OK
작업이 완료되었습니다.
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