CryptGetDefaultProviderA 함수(wincrypt.h)
통사론
BOOL CryptGetDefaultProviderA(
[in] DWORD dwProvType,
[in] DWORD *pdwReserved,
[in] DWORD dwFlags,
[out] LPSTR pszProvName,
[in, out] DWORD *pcbProvName
);
매개 변수
[in] dwProvType
기본 CSP 이름을 찾을 공급자 유형입니다.
정의된 공급자 유형은 다음과 같습니다.
- PROV_RSA_FULL
- PROV_RSA_SIG
- PROV_DSS
- PROV_DSS_DH
- PROV_DH_SCHANNEL
- PROV_FORTEZZA
- PROV_MS_EXCHANGE
- PROV_RSA_SCHANNEL
- PROV_SSL
[in] pdwReserved
이 매개 변수는 나중에 사용하도록 예약되어 있으며 NULL
[in] dwFlags
다음 플래그 값이 정의됩니다.
값 | 의미 |
---|---|
|
지정된 형식의 사용자 컨텍스트 기본 CSP를 반환합니다. |
|
지정된 형식의 컴퓨터 기본 CSP를 반환합니다. |
[out] pszProvName
기본 CSP의 이름을 받을 null로 끝나는 문자열 버퍼에 대한 포인터입니다.
메모리 할당을 위해 버퍼 크기를 찾기 위해 이 매개 변수는 NULL
[in, out] pcbProvName
pszProvName 매개 변수가 가리키는 버퍼의 크기(바이트)를 지정하는 DWORD 값에 대한 포인터입니다. 함수가 반환될 때 DWORD 값에는 저장되거나 버퍼에 저장될 바이트 수가 포함됩니다.
반환 값
함수가 성공하면 반환 값은 0이 아닌 값(TRUE)입니다.
함수가 실패하면 반환 값은 0(false
NTE에 의해 앞에 있는 오류 코드는 사용 중인 특정 CSP에 의해 생성됩니다. 가능한 오류 코드는 다음과 같습니다.
반환 코드 | 묘사 |
---|---|
|
매개 변수 중 하나에 유효하지 않은 값이 포함되어 있습니다. 이는 가장 자주 유효하지 않은 포인터입니다. |
|
이름의 버퍼가 충분히 크지 않습니다. |
|
운영 체제에 메모리가 부족합니다. |
|
dwFlags 매개 변수에는 인식할 수 없는 값이 있습니다. |
발언
이 함수는 현재 로컬 컴퓨터 또는 현재 사용자의 기본값으로 설정된 설치된 CSP를 결정합니다. 이 정보는 종종 사용자에게 표시됩니다.
예제
다음 예제에서는 PROV_RSA_FULL 공급자 형식에 대한 기본 CSP의 이름을 검색합니다. 이 함수를 사용하는 다른 예제는 C 프로그램 예제: CSP 공급자 및 공급자 형식열거를 참조하세요.
#include <stdio.h>
#include <windows.h>
#include <Wincrypt.h>
#pragma comment(lib, "crypt32.lib")
void main()
{
DWORD cbProvName=0;
LPTSTR pbProvName=NULL;
// Copyright (C) Microsoft. All rights reserved.
// Get the length of the RSA_FULL default provider name.
if (!(CryptGetDefaultProvider(
PROV_RSA_FULL,
NULL,
CRYPT_MACHINE_DEFAULT,
NULL,
&cbProvName)))
{
printf("Error getting the length of the default "
"provider name.\n");
exit(1);
}
// Allocate local memory for the name of the default provider.
if (!(pbProvName = (LPTSTR)LocalAlloc(LMEM_ZEROINIT,
cbProvName)))
{
printf("Error during memory allocation for "
"provider name.\n");
exit(1);
}
// Get the default provider name.
if (CryptGetDefaultProvider(
PROV_RSA_FULL,
NULL,
CRYPT_MACHINE_DEFAULT,
pbProvName,
&cbProvName))
{
printf("The default provider name is %s\n",pbProvName);
}
else
{
printf("Getting the name of the provider failed.\n");
exit(1);
}
// Free resources when done.
LocalFree(pbProvName);
}
메모
wincrypt.h 헤더는 CRYptGetDefaultProvider를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | wincrypt.h |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |