SCardIntroduceCardTypeA 함수(winscard.h)

SCardIntroduceCardType 함수는 스마트 카드 데이터베이스에 추가하여 스마트 카드 하위 시스템(활성 사용자용)에 스마트 카드 도입합니다.

구문

LONG SCardIntroduceCardTypeA(
  [in]           SCARDCONTEXT hContext,
  [in]           LPCSTR       szCardName,
  [in, optional] LPCGUID      pguidPrimaryProvider,
  [in, optional] LPCGUID      rgguidInterfaces,
  [in]           DWORD        dwInterfaceCount,
  [in]           LPCBYTE      pbAtr,
  [in]           LPCBYTE      pbAtrMask,
  [in]           DWORD        cbAtrLen
);

매개 변수

[in] hContext

리소스 관리자 컨텍스트를 식별하는 핸들입니다. 리소스 관리자 컨텍스트는 SCardEstablishContext에 대한 이전 호출에 의해 설정됩니다. 이 매개 변수는 NULL일 수 없습니다.

[in] szCardName

사용자가 카드 인식할 수 있는 이름입니다.

[in, optional] pguidPrimaryProvider

스마트 카드 기본 서비스 공급자의 식별자(GUID)에 대한 포인터입니다.

[in, optional] rgguidInterfaces

스마트 카드 지원하는 인터페이스를 식별하는 GUID(식별자) 배열입니다.

[in] dwInterfaceCount

rgguidInterfaces 배열의 식별자 수입니다.

[in] pbAtr

스마트 카드 데이터베이스를 쿼리할 때 일치하는 용도로 사용할 수 있는 ATR 문자열입니다(자세한 내용은 SCardListCards 참조). 이 문자열의 길이는 일반 ATR 구문 분석에 의해 결정됩니다.

[in] pbAtrMask

스마트 카드의 ATR을 pbAtr에 제공된 ATR과 비교할 때 사용할 선택적 비트 마스크입니다. 이 값이 NULL이 아닌 경우 pbAtr에 제공된 ATR 문자열과 동일한 길이의 바이트 문자열을 가리킵니다. 지정된 ATR 문자열 ApbAtr에 제공된 ATR과 비교되는 경우 M이 제공된 마스크이고 &비트 AND를 나타내는 & = MpbAtr인 경우에만 일치합니다.

[in] cbAtrLen

ATR 및 선택적 ATR 마스크의 길이입니다. 이 값이 0이면 ATR의 길이가 일반 ATR 구문 분석에 의해 결정됩니다. pbAtr 값이 제공된 경우 이 값은 0이 될 수 없습니다.

반환 값

이 함수는 성공 또는 실패 여부에 따라 다른 값을 반환합니다.

반환 코드 설명
Success
SCARD_S_SUCCESS.
실패
오류 코드입니다. 자세한 내용은 스마트 카드 반환 값을 참조하세요.

설명

이 함수는 리디렉션되지 않지만 원격 데스크톱 세션 내에서 함수를 호출해도 오류가 발생하지 않습니다. 이는 결과가 로컬 컴퓨터 대신 원격 컴퓨터에서 생성된다는 의미일 뿐입니다.

SCardIntroduceCardType 함수는 데이터베이스 관리 함수입니다. 다른 데이터베이스 관리 함수에 대한 자세한 내용은 스마트 카드 데이터베이스 관리 함수를 참조하세요.

스마트 카드 제거하려면 SCardForgetCardType을 사용합니다.

예제

다음 예제에서는 카드 형식을 도입하는 방법을 보여줍니다. 이 예제에서는 hContext가 SCardEstablishContext 함수에 대한 이전 호출에서 가져온 유효한 핸들이라고 가정합니다.

GUID  MyGuid = { 0xABCDEF00,
                 0xABCD,
                 0xABCD,
                 0xAA, 0xBB, 0xCC, 0xDD,
                 0xAA, 0xBB, 0xCC, 0xDD };

static const BYTE MyATR[] =     { 0xaa, 0xbb, 0xcc, 0x00, 0xdd };
static const BYTE MyATRMask[] = { 0xff, 0xff, 0xff, 0x00, 0xff};

LONG            lReturn;

lReturn = SCardIntroduceCardType(hContext, 
                                 L"MyCardName",
                                 &MyGuid,
                                 NULL,    // No interface array
                                 0,       // Interface count = 0
                                 MyATR,
                                 MyATRMask,
                                 sizeof(MyATR));
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardIntroduceCardType\n");

참고

winscard.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 SCardIntroduceCardType을 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winscard.h
라이브러리 Winscard.lib
DLL Winscard.dll

추가 정보

SCardEstablishContext

SCardForgetCardType

SCardIntroduceReader

SCardIntroduceReaderGroup

SCardListCards