Share via


SCardEstablishContext 함수(winscard.h)

SCardEstablishContext 함수는 데이터베이스 작업이 수행되는 리소스 관리자 컨텍스트(scope)를 설정합니다.

구문

LONG SCardEstablishContext(
  [in]  DWORD          dwScope,
  [in]  LPCVOID        pvReserved1,
  [in]  LPCVOID        pvReserved2,
  [out] LPSCARDCONTEXT phContext
);

매개 변수

[in] dwScope

리소스 관리자 컨텍스트의 범위입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
SCARD_SCOPE_USER
데이터베이스 작업은 사용자의 도메인 내에서 수행됩니다.
SCARD_SCOPE_SYSTEM
데이터베이스 작업은 시스템의 도메인 내에서 수행됩니다. 호출하는 애플리케이션에는 데이터베이스 작업에 대한 적절한 액세스 권한이 있어야 합니다.

[in] pvReserved1

나중에 사용할 수 있으며 NULL이어야 합니다. 이 매개 변수를 사용하면 적절한 권한 있는 관리 애플리케이션이 다른 사용자를 대신하여 작동할 수 있습니다.

[in] pvReserved2

나중에 사용할 수 있으며 NULL이어야 합니다.

[out] phContext

설정된 리소스 관리자 컨텍스트에 대한 핸들입니다. 이제 이 핸들을 이 컨텍스트 내에서 작업을 수행하려는 다른 함수에 제공할 수 있습니다.

반환 값

함수가 성공하면 함수는 SCARD_S_SUCCESS 반환합니다.

함수가 실패하면 오류 코드를 반환합니다. 자세한 내용은 스마트 카드 반환 값을 참조하세요.

설명

SCardEstablishContext에서 반환된 컨텍스트 핸들은 데이터베이스 쿼리 및 관리 함수에서 사용할 수 있습니다. 자세한 내용은 스마트 카드 데이터베이스 쿼리 함수 및 스마트카드 데이터베이스 관리 함수를 참조하세요.

설정된 리소스 관리자 컨텍스트를 해제하려면 SCardReleaseContext를 사용합니다.

클라이언트가 터미널 서버에서 실행되는 클라이언트 세션과 같은 원격 세션에서 스마트 카드 작업을 시도하고 사용 중인 운영 체제가 스마트 카드 리디렉션을 지원하지 않는 경우 이 함수는 ERROR_BROKEN_PIPE 반환합니다.

예제

다음 예제에서는 리소스 관리자 컨텍스트를 설정합니다.

SCARDCONTEXT    hSC;
LONG            lReturn;
// Establish the context.
lReturn = SCardEstablishContext(SCARD_SCOPE_USER,
                                NULL,
                                NULL,
                                &hSC);
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardEstablishContext\n");
else
{
    // Use the context as needed. When done,
    // free the context by calling SCardReleaseContext.
    // ...
}

요구 사항

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

추가 정보

SCardReleaseContext