SCardConnectA 함수(winscard.h)
SCardConnect 함수는 호출 애플리케이션과 특정 판독기가 포함하는 스마트 카드 간에 연결(특정 리소스 관리자 컨텍스트 사용)을 설정합니다. 지정된 판독기에서 카드 없으면 오류가 반환됩니다.
구문
LONG SCardConnectA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szReader,
[in] DWORD dwShareMode,
[in] DWORD dwPreferredProtocols,
[out] LPSCARDHANDLE phCard,
[out] LPDWORD pdwActiveProtocol
);
매개 변수
[in] hContext
리소스 관리자 컨텍스트를 식별하는 핸들입니다. 리소스 관리자 컨텍스트는 SCardEstablishContext에 대한 이전 호출에 의해 설정됩니다.
[in] szReader
대상 카드 포함하는 판독기의 이름입니다.
[in] dwShareMode
다른 애플리케이션이 카드 대한 연결을 형성할 수 있는지 여부를 나타내는 플래그입니다.
[in] dwPreferredProtocols
연결에 허용되는 프로토콜의 비트 마스크입니다. 가능한 값은 OR 연산과 결합될 수 있습니다.
값 | 의미 |
---|---|
|
T=0 은 허용되는 프로토콜입니다. |
|
T=1 은 허용되는 프로토콜입니다. |
|
이 매개 변수는 dwShareMode 가 SCARD_SHARE_DIRECT 설정된 경우에만 0일 수 있습니다. 이 경우 IOCTL_SMARTCARD_SET_PROTOCOL 제어 지시문이 SCardControl과 함께 전송될 때까지 드라이버가 프로토콜 협상을 수행하지 않습니다. |
[out] phCard
지정된 판독기에서 스마트 카드 대한 연결을 식별하는 핸들입니다.
[out] pdwActiveProtocol
설정된 활성 프로토콜을 나타내는 플래그입니다.
값 | 의미 |
---|---|
|
T=0 은 활성 프로토콜입니다. |
|
T=1 은 활성 프로토콜입니다. |
|
프로토콜 협상이 발생하지 않도록 SCARD_SHARE_DIRECT 지정되었습니다. 판독기에서 카드 없을 수 있습니다. |
반환 값
이 함수는 성공 또는 실패 여부에 따라 다른 값을 반환합니다.
반환 코드 | 설명 |
---|---|
|
SCARD_S_SUCCESS. |
|
오류 코드입니다. 자세한 내용은 스마트 카드 반환 값을 참조하세요. |
|
판독기가 카드 연결할 수 없습니다. |
설명
SCardConnect 함수는 스마트 카드 및 판독기 액세스 함수입니다. 다른 액세스 함수에 대한 자세한 내용은 스마트 카드 및 읽기 권한자 액세스 함수를 참조하세요.
예제
다음 예제에서는 판독기 연결을 만듭니다. 이 예제에서는 hContext가 SCardEstablishContext에 대한 이전 호출에서 받은 SCARDCONTEXT 형식의 유효한 핸들이라고 가정합니다.
SCARDHANDLE hCardHandle;
LONG lReturn;
DWORD dwAP;
lReturn = SCardConnect( hContext,
(LPCTSTR)"Rainbow Technologies SCR3531 0",
SCARD_SHARE_SHARED,
SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1,
&hCardHandle,
&dwAP );
if ( SCARD_S_SUCCESS != lReturn )
{
printf("Failed SCardConnect\n");
exit(1); // Or other appropriate action.
}
// Use the connection.
// Display the active protocol.
switch ( dwAP )
{
case SCARD_PROTOCOL_T0:
printf("Active protocol T0\n");
break;
case SCARD_PROTOCOL_T1:
printf("Active protocol T1\n");
break;
case SCARD_PROTOCOL_UNDEFINED:
default:
printf("Active protocol unnegotiated or unknown\n");
break;
}
// Remember to disconnect (by calling SCardDisconnect).
// ...
참고
winscard.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 SCardConnect를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winscard.h |
라이브러리 | Winscard.lib |
DLL | Winscard.dll |