SCardGetCardTypeProviderNameA 함수(winscard.h)
SCardGetCardTypeProviderName 함수는 지정된 카드 이름에 대한 공급자와 공급자 유형포함하는 모듈(동적 링크 라이브러리)의 이름을 반환합니다.
통사론
LONG SCardGetCardTypeProviderNameA(
[in] SCARDCONTEXT hContext,
[in] LPCSTR szCardName,
[in] DWORD dwProviderId,
[out] CHAR *szProvider,
[in, out] LPDWORD pcchProvider
);
매개 변수
[in] hContext
Resource Manager 컨텍스트식별하는 핸들입니다. 리소스 관리자 컨텍스트는 SCardEstablishContext대한 이전 호출을 통해 설정할 수 있습니다. SCardGetCardTypeProviderName
[in] szCardName
이 공급자 이름이 연결된 카드 유형의 이름입니다.
[in] dwProviderId
이 카드 유형과 연결된 공급자의 식별자입니다.
값 | 의미 |
---|---|
|
이 함수는 스마트 카드의기본 서비스 공급자 이름을 GUID 문자열로 검색합니다. |
|
이 함수는 암호화 서비스 공급자이름을 검색합니다. |
|
이 함수는 스마트 카드 KSP(키 스토리지 공급자)의 이름을 검색합니다. |
|
이 함수는 카드 모듈의 이름을 검색합니다. |
[out] szProvider
이 함수가 성공적으로 완료되면 공급자 이름을 받는 문자열 변수입니다.
[in, out] pcchProvider
DWORD 값에 대한 포인터입니다. 입력 시 pcchProviderszProvider 버퍼의 길이를 문자로 제공합니다. 이 값이 SCARD_AUTOALLOCATE 경우 szProvider 바이트 포인터에 대한 포인터로 변환되고 문자열이 포함된 메모리 블록의 주소를 받습니다. 이 메모리 블록은 SCardFreeMemory호출하여 할당을 취소해야 합니다.
출력에서 이 값은 szProvider 변수의 null 종결자를 포함하여 실제 문자 수를 나타냅니다.
반환 값
이 함수는 성공 여부에 따라 다른 값을 반환합니다.
반환 코드 | 묘사 |
---|---|
|
SCARD_S_SUCCESS. |
|
오류 코드입니다. 자세한 내용은 스마트 카드 반환 값 |
발언
이 함수는 리디렉션되지 않지만 원격 데스크톱 세션 내에서 함수를 호출해도 오류가 발생하지 않습니다. 이는 결과가 로컬 컴퓨터 대신 원격 컴퓨터에서 발생한다는 의미일 뿐입니다.
이 함수가 성공적으로 완료되면 szProvider 값을 CryptAcquireContext호출에서 세 번째 매개 변수로 사용할 수 있습니다.
예제
다음 예제에서는 지정된 판독기 컨텍스트의 공급자 이름을 검색하는 방법을 보여줍니다. 이 예제에서는 hContext가 SCardEstablishContext 함수에 대한 이전 호출에서 가져온 유효한 핸들이라고 가정합니다.
LPTSTR szProvider = NULL;
LPTSTR szCardName = _T("WindowsCard");
DWORD chProvider = SCARD_AUTOALLOCATE;
LONG lReturn = SCARD_S_SUCCESS;
// Retrieve the provider name.
// hContext was set by SCardEstablishContext.
lReturn = SCardGetCardTypeProviderName(hContext,
szCardName,
SCARD_PROVIDER_CSP,
(LPTSTR)&szProvider,
&chProvider);
if (SCARD_S_SUCCESS == lReturn)
{
BOOL fSts = TRUE;
HCRYPTPROV hProv = NULL;
// Acquire a Cryptographic operation context.
fSts = CryptAcquireContext(&hProv,
NULL,
szProvider,
PROV_RSA_FULL,
0);
// Perform Cryptographic operations with smart card
// ...
// Free memory allocated by SCardGetCardTypeProviderName.
lReturn = SCardFreeMemory(hContext, szProvider);
}
메모
winscard.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 SCardGetCardTypeProviderName을 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winscard.h |
라이브러리 | Winscard.lib |
DLL | Winscard.dll |
참고 항목
SCardSetCardTypeProviderName