다음을 통해 공유


PFN_CERT_DLL_OPEN_STORE_PROV_FUNC 콜백 함수(wincrypt.h)

CertDllOpenStoreProv 함수는 저장소 공급자에 의해 구현되며 저장소를 여는 데 사용됩니다. 이 함수는 CertOpenStore 함수에 의해 호출됩니다.

참고 처음 5개의 매개 변수는 CertOpenStore의 일치하는 매개 변수와 동일합니다.
 

구문

PFN_CERT_DLL_OPEN_STORE_PROV_FUNC PfnCertDllOpenStoreProvFunc;

BOOL PfnCertDllOpenStoreProvFunc(
  [in]      LPCSTR lpszStoreProvider,
  [in]      DWORD dwEncodingType,
  [in]      HCRYPTPROV_LEGACY hCryptProv,
  [in]      DWORD dwFlags,
  [in]      const void *pvPara,
  [in]      HCERTSTORE hCertStore,
  [in, out] PCERT_STORE_PROV_INFO pStoreProvInfo
)
{...}

매개 변수

[in] lpszStoreProvider

저장소 공급자 형식을 포함하는 null로 끝나는 ANSI 문자열에 대한 포인터입니다.

다음 값은 미리 정의된 저장소 형식을 나타냅니다. 저장소 공급자 유형은 pvPara 매개 변수의 내용과 dwFlags 매개 변수의 상위 단어의 사용 및 의미를 결정합니다. CryptInstallOIDFunctionAddress 또는 CryptRegisterOIDFunction 함수를 사용하여 추가 저장소 공급자를 설치하거나 등록할 수 있습니다. 저장소 공급자를 추가하는 방법에 대한 자세한 내용은 CertOpenStore 기능 확장을 참조하세요.

공급자 식별자 Description pvPara 콘텐츠
CERT_STORE_PROV_MEMORY

sz_CERT_STORE_PROV_MEMORY

캐시된 메모리에 인증서 저장소를 만듭니다. 인증서, CRL( 인증서 해지 목록 ) 또는 CTL( 인증서 신뢰 목록 )은 처음에 저장소에 로드되지 않습니다. 일반적으로 임시 저장소를 만드는 데 사용됩니다.

인증서, CRL 또는 CTL을 추가하거나 메모리 저장소의 인증서, CRL 또는 CTL 속성에 변경 내용을 추가하면 자동으로 저장되지 않습니다. CertSaveStore를 사용하여 파일 또는 메모리 BLOB에 저장할 수 있습니다.

사용되지 않습니다.
CERT_STORE_PROV_FILE 지정된 열린 파일에서 읽은 인증서, CRL 및 CTL을 사용하여 저장소를 초기화합니다. 이 공급자는 파일에 PKCS #7 서명된 메시지 또는 단일 인코딩된 인증서가 아닌 직렬화된 저장소만 포함해야 합니다.

파일 포인터는 직렬화된 저장소 정보의 시작 부분에 위치해야 합니다. 직렬화된 저장소의 데이터가 인증서 저장소에 로드된 후 파일 포인터는 파일의 직렬화된 저장소 데이터를 따를 수 있는 데이터의 시작 부분에 배치됩니다. CERT_FILE_STORE_COMMIT_ENABLE dwFlags로 설정된 경우 파일 핸들이 중복되고 저장소는 항상 직렬화된 저장소로 커밋됩니다. 저장소가 닫혀 있을 때 파일이 닫혀 있지 않습니다.

CreateFile을 사용하여 연 파일의 핸들에 대한 포인터입니다.
CERT_STORE_PROV_FILENAME_A 파일의 인증서, CRL 및 CTL을 사용하여 저장소를 초기화합니다. 공급자는 파일을 열고 먼저 파일을 직렬화된 저장소로 읽은 다음 PKCS #7 서명된 메시지로, 마지막으로 인코딩된 단일 인증서로 읽으려고 시도합니다.

dwEncodingType 매개 변수에는 메시지와 인증서 모두에 사용할 인코딩 형식이 포함되어야 합니다. 파일에 X.509 로 인코딩된 인증서가 포함된 경우 GetLastError 로 인해 열린 작업이 실패하고 ERROR_ACCESS_DENIED 반환합니다. CERT_FILE_STORE_COMMIT_ENABLE 플래그가 dwFlags로 설정된 경우 CreateFile에 전달된 dwCreationDisposition 값은 다음과 같습니다.

  • CERT_STORE_CREATE_NEW_FLAG 플래그가 설정된 경우 CreateFile 은 CREATE_NEW 사용합니다.
  • CERT_STORE_OPEN_EXISTING_FLAG 플래그가 설정된 경우 CreateFile 은 OPEN_EXISTING 사용합니다.
  • 다른 모든 dwFlags 설정의 경우 CreateFile은 OPEN_ALWAYS 사용합니다.

dwFlags에 CERT_FILE_STORE_COMMIT_ENABLE 포함된 경우 파일은 열린 파일 형식에 따라 PKCS #7 또는 직렬화된 저장소로 커밋됩니다. 파일이 비어 있거나 파일 이름에 .p7c 또는 .spc 확장명을 가진 경우 파일은 PKCS #7로 커밋됩니다. 그렇지 않으면 파일이 직렬화된 저장소로 커밋됩니다.

열리지 않은 기존 파일의 이름을 포함하는 null로 종료된 ANSI 문자열에 대한 포인터입니다.
CERT_STORE_PROV_FILENAME

CERT_STORE_PROV_FILENAME_W

sz_CERT_STORE_PROV_FILENAME

sz_CERT_STORE_PROV_FILENAME_W

CERT_STORE_PROV_FILENAME_A 동일합니다. 열리지 않은 기존 파일의 이름을 포함하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다.
CERT_STORE_PROV_COLLECTION

sz_CERT_STORE_PROV_COLLECTION

다른 저장소의 컬렉션이 될 저장소를 엽니다. Store는 CertAddStoreToCollectionCertRemoveStoreFromCollection을 사용하여 컬렉션에 추가되거나 컬렉션에서 제거됩니다. 저장소가 컬렉션에 추가되면 해당 저장소의 모든 인증서, CRL 및 CTL을 컬렉션 저장소의 검색 또는 열거에 사용할 수 있게 됩니다.

dwFlags의 상위 단어는 0으로 설정됩니다.

NULL이어야 합니다.
CERT_STORE_PROV_REG 레지스트리 하위 키에서 인증서, CRL 및 CTL을 사용하여 저장소를 초기화합니다.

이 공급자는 pvPara에 전달된 키 아래에 인증서, CRLCTL 레지스트리 하위 키를 열거나 만듭니다. 공급자가 입력 키를 닫지 않습니다. 반환하기 전에 공급자는 pvPara에 전달된 키의 자체 복사본을 엽니다. CERT_STORE_READONLY_FLAG dwFlags의 낮은 단어에서 설정된 경우 레지스트리 하위 키는 KEY_READ_ACCESS RegOpenKey 를 사용하여 열립니다. 그렇지 않으면 레지스트리 하위 키는 KEY_ALL_ACCESS RegCreateKey 를 사용하여 만들어집니다. 열린 저장소의 내용에 대한 변경 내용은 레지스트리에 즉시 유지됩니다. 그러나 CERT_STORE_READONLY_FLAG dwFlags의 낮은 단어로 설정된 경우 저장소의 내용에 추가하거나 컨텍스트의 속성을 변경하려고 하면 GetLastError 가 E_ACCESSDENIED 코드를 반환하는 동안 오류가 발생합니다.

열린 레지스트리 키의 핸들입니다.
CERT_STORE_PROV_SYSTEM_A 지정된 시스템 저장소에서 인증서, CRL 및 CTL을 사용하여 저장소를 초기화합니다.

시스템 저장소는 하나 이상의 물리적 저장소로 구성된 논리적 컬렉션 저장소입니다. 시스템 저장소와 연결된 물리적 저장소는 CertRegisterPhysicalStore 함수에 등록됩니다. 시스템 저장소가 열리면 연결된 모든 실제 저장소도 CertOpenStore 호출로 열리고 CertAddStoreToCollection 함수를 사용하여 시스템 저장소 컬렉션에 추가됩니다. dwFlags의 상위 단어는 일반적으로 CERT_SYSTEM_STORE_CURRENT_USER 설정된 시스템 저장소 위치를 나타냅니다. 레지스트리 위치에 대한 자세한 내용은 이 항목 의 뒷부분에 있는 dwFlags시스템 저장소 위치를 참조하세요. 일부 시스템 저장소 위치는 원격으로 열 수 있습니다. 자세한 내용은 시스템 저장소 위치를 참조하세요.

시스템 저장소 이름(예: "My" 또는 "Root")이 포함된 null로 끝나는 ANSI 문자열에 대한 포인터입니다.
CERT_STORE_PROV_SYSTEM

CERT_STORE_PROV_SYSTEM_W

sz_CERT_STORE_PROV_SYSTEM

sz_CERT_STORE_PROV_SYSTEM_W

CERT_STORE_PROV_SYSTEM_A 동일합니다. 시스템 저장소 이름(예: "My" 또는 "Root")이 포함된 null로 끝나는 유니코드 문자열에 대한 포인터입니다.
CERT_STORE_PROV_SYSTEM_REGISTRY_A 물리적 레지스트리 저장소에서 인증서, CRL 및 CTL을 사용하여 저장소를 초기화합니다. 실제 저장소는 컬렉션 저장소로 열리지 않습니다. 열거형 및 검색은 하나의 실제 저장소에 있는 인증서, CRL 및 CTL만 통과합니다.

dwFlags의 상위 단어는 일반적으로 CERT_SYSTEM_STORE_CURRENT_USER 설정된 시스템 저장소 위치를 나타냅니다. 자세한 내용은 이 항목의 뒷 부분에 있는 dwFlags 를 참조하세요. 일부 시스템 저장소 위치는 원격으로 열 수 있습니다. 자세한 내용은 시스템 저장소 위치를 참조하세요.

시스템 저장소 이름(예: "My" 또는 "Root")이 포함된 null로 끝나는 ANSI 문자열에 대한 포인터입니다.
CERT_STORE_PROV_SYSTEM_REGISTRY

CERT_STORE_PROV_SYSTEM_REGISTRY_W

sz_CERT_STORE_PROV_SYSTEM_REGISTRY

sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W

CERT_STORE_PROV_SYSTEM_REGISTRY_A 동일합니다. 시스템 저장소 이름(예: "My" 또는 "Root")이 포함된 null로 끝나는 유니코드 문자열에 대한 포인터입니다.
CERT_STORE_PROV_PHYSICAL

CERT_STORE_PROV_PHYSICAL_W

sz_CERT_STORE_PROV_PHYSICAL

sz_CERT_STORE_PROV_PHYSICAL_W

논리 시스템 저장소의 구성원인 지정된 물리적 저장소에서 인증서, CRL 및 CTL을 사용하여 저장소를 초기화합니다.

두 이름은 중간 백슬래시(\)로 구분됩니다(예: "Root.LocalMachine"). 여기서 "Root"는 시스템 저장소의 이름과 "입니다. LocalMachine"은 실제 저장소의 이름입니다. 시스템 및 실제 저장소 이름에는 백슬라이시를 포함할 수 없습니다. dwFlags의 높은 단어는 일반적으로 CERT_SYSTEM_STORE_CURRENT_USER 시스템 저장소 위치를 나타냅니다. 자세한 내용은 이 항목의 뒷 부분에 있는 dwFlags 를 참조하세요. 일부 물리적 저장소 위치는 원격으로 열 수 있습니다.

시스템 저장소 이름과 실제 이름을 모두 포함하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다.
CERT_STORE_PROV_MSG 지정된 암호화 메시지의 인증서, CRL 및 CTL을 사용하여 저장소를 초기화합니다. dwEncodingType 매개 변수에는 메시지와 인증서 모두에 사용되는 인코딩 형식이 포함되어야 합니다. CryptMsgOpenToDecode 호출에서 반환되는 인코딩된 메시지의 HCRYPTMSG 핸들입니다.
CERT_STORE_PROV_PKCS7

sz_CERT_STORE_PROV_PKCS7

인코딩된 PKCS #7 서명된 메시지에서 인증서, CRL 및 CTL을 사용하여 저장소를 초기화합니다. dwEncodingType 매개 변수는 메시지와 인증서 모두에 사용할 인코딩 형식을 지정해야 합니다. 인코딩된 메시지를 나타내는 CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
CERT_STORE_PROV_SERIALIZED

sz_CERT_STORE_PROV_SERIALIZED

직렬화된 저장소가 포함된 메모리 위치에서 인증서, CRL 및 CTL을 사용하여 저장소를 초기화합니다. 직렬화된 메모리 BLOB을 포함하는 CRYPT_DATA_BLOB 구조체에 대한 포인터입니다.
CERT_STORE_PROV_LDAP

CERT_STORE_PROV_LDAP_W

sz_CERT_STORE_PROV_LDAP

sz_CERT_STORE_PROV_LDAP_W

LDAP 쿼리의 결과에서 인증서, CRL 및 CTL을 사용하여 저장소를 초기화합니다.

저장소에서 쓰기 작업을 수행하려면 쿼리 문자열이 필터와 단일 특성이 없는 BASE 쿼리를 지정해야 합니다.

dwFlags 매개 변수에 CERT_LDAP_STORE_OPENED_FLAG 플래그가 포함된 경우 사용할 설정된 LDAP 세션을 지정하는 CERT_LDAP_STORE_OPENED_PARA 구조체의 주소입니다.

그렇지 않으면 LDAP 쿼리 문자열을 포함하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. LDAP 쿼리 문자열에 대한 자세한 내용은 LDAP 언어를 참조하세요.

CERT_STORE_PROV_SMART_CARD

CERT_STORE_PROV_SMART_CARD_W

sz_CERT_STORE_PROV_SMART_CARD

sz_CERT_STORE_PROV_SMART_CARD_W

현재 사용되지 않습니다.  

[in] dwEncodingType

인증서 인코딩 유형메시지 인코딩 유형을 지정합니다. 인코딩은 CertSaveStore 함수의 dwSaveAs 매개 변수에 CERT_STORE_SAVE_AS_PKCS7 포함된 경우에만 사용됩니다. 그렇지 않으면 dwEncodingType 매개 변수가 사용되지 않습니다.

이 매개 변수는 CERT_STORE_PROV_MSG, CERT_STORE_PROV_PKCS7 또는 CERT_STORE_PROV_FILENAME 공급자 형식이 lpszStoreProvider 매개 변수에 지정된 경우에만 적용됩니다. 다른 모든 공급자 형식의 경우 이 매개 변수는 사용되지 않으며 0으로 설정해야 합니다.

이 매개 변수는 다음 값 중 하나 이상의 조합일 수 있습니다.

의미
PKCS_7_ASN_ENCODING
65536 (0x10000)
PKCS #7 메시지 인코딩을 지정합니다.
X509_ASN_ENCODING
1(0x1)
X.509 인증서 인코딩을 지정합니다.

[in] hCryptProv

암호화 공급자에 대한 핸들입니다. 이 매개 변수는 NULL일 수 있습니다.

[in] dwFlags

이러한 값은 비트 OR 연산을 사용하여 결합된 상위 단어 및 낮은 단어 값으로 구성됩니다.

dwFlags의 소문자 부분은 열린 인증서 저장소의 다양한 일반적인 특성을 제어합니다. 이 부분은 모든 저장소 공급자 유형과 함께 사용할 수 있습니다. dwFlags의 하위 단어 부분은 다음 값 중 하나일 수 있습니다.

의미
CERT_STORE_CREATE_NEW_FLAG
새 저장소가 없는 경우 새 저장소를 만듭니다. 저장소가 이미 있는 경우 이 함수는 실패해야 합니다.

CERT_STORE_OPEN_EXISTING_FLAG 또는 CERT_STORE_CREATE_NEW_FLAG 설정되지 않은 경우 기존 저장소를 열거나 아직 없는 경우 저장소를 만들고 엽니다.

CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG
저장소에서 가져온 모든 인증서, CRL 또는 CTL이 더 이상 사용되지 않을 때까지 저장소 공급자의 닫기를 연기합니다. 저장소에서 가져온 마지막 인증서, CRL 또는 CTL이 해제되면 저장소가 실제로 닫힙니다. 이 함수를 호출한 후에도 이러한 인증서, CRL 및 CTL의 속성에 대한 모든 변경 내용을 유지해야 합니다.

이 플래그가 설정되지 않고 저장소에서 가져온 인증서, CRL 또는 CTL이 여전히 사용 중인 경우 해당 인증서, CRL 및 CTL의 속성에 대한 변경 내용은 유지되지 않아야 합니다.

이 함수가 CERT_CLOSE_STORE_FORCE_FLAG 사용하여 호출되는 경우 CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG 무시해야 합니다.

이 플래그가 설정되고 NULL이 아닌 HCRYPTPROV 값이 전달되면 이 함수를 호출한 후에도 해당 공급자가 계속 사용됩니다.

CERT_STORE_DELETE_FLAG
저장소가 열리지 않고 삭제됩니다. 이 함수는 삭제의 성공과 실패 모두에 대해 FALSE 를 반환합니다. 삭제의 성공을 나타내려면 SetLastError 를 0으로 호출합니다. 삭제 실패를 나타내려면 적절한 오류 코드를 사용하여 SetLastError 를 호출합니다.
CERT_STORE_ENUM_ARCHIVED_FLAG
일반적으로 저장소에 있는 모든 인증서의 열거형은 CERT_ARCHIVED_PROP_ID 속성이 설정된 인증서를 무시합니다. 이 플래그가 설정되면 저장소의 인증서 열거에는 CERT_ARCHIVED_PROP_ID 속성이 있는 인증서를 포함하여 저장소의 모든 인증서가 포함됩니다.
CERT_STORE_MAXIMUM_ALLOWED
허용되는 최대 사용 권한 집합으로 저장소를 엽니다. 이 플래그를 지정하면 레지스트리 저장소가 먼저 쓰기 액세스 권한으로 열리고 실패하면 읽기 전용 액세스 권한으로 다시 열립니다.
CERT_STORE_NO_CRYPT_RELEASE_FLAG
hCryptProv 매개 변수가 NULL인 경우 이 플래그는 사용되지 않습니다. 이 플래그는 NULL 이 아닌 CSP 핸들이 hCryptProv 매개 변수로 전달되는 경우에만 유효합니다. 이 플래그를 설정하면 인증서 저장소가 닫혀 있을 때 기본이 아닌 CSP가 자동으로 릴리스되지 않습니다.
CERT_STORE_OPEN_EXISTING_FLAG
기존 저장소만 엽니다. 저장소가 없으면 함수가 실패합니다.
CERT_STORE_READONLY_FLAG
읽기 전용 모드로 저장소를 엽니다. 저장소의 콘텐츠를 변경하려고 하면 오류가 발생합니다. 이 플래그가 설정되고 레지스트리 기반 저장소 공급자를 사용하는 경우 레지스트리 하위 키는 KEY_READ_ACCESS RegOpenKey를 사용하여 열립니다. 그렇지 않으면 레지스트리 하위 키는 KEY_ALL_ACCESS RegCreateKey를 사용하여 만들어집니다.
CERT_STORE_SET_LOCALIZED_NAME_FLAG
이 플래그가 지원되는 경우 공급자는 저장소의 CERT_STORE_LOCALIZED_NAME_PROP_ID 속성을 설정합니다. dwPropIDCERT_STORE_LOCALIZED_NAME_PROP_ID 설정된 CertGetStoreProperty 함수를 호출하여 지역화된 이름을 검색할 수 있습니다. 이 플래그는 형식 CERT_STORE_PROV_FILENAME, CERT_STORE_PROV_SYSTEM, CERT_STORE_PROV_SYSTEM_REGISTRYCERT_STORE_PROV_PHYSICAL_W 공급자에 대해 지원됩니다.
CERT_STORE_SHARE_CONTEXT_FLAG
저장소를 여러 번 열 때 저장소의 열린 인스턴스에서 인증서, CRL 또는 CTL 컨텍스트의 인코딩된 부분에 대한 메모리를 다시 사용하여 효율적인 메모리 사용을 보장하도록 이 플래그를 설정할 수 있습니다.
CERT_STORE_UPDATE_KEYID_FLAG
키 식별자의 Lists CurrentUser 및 LocalMachine 내에 있습니다. 이러한 키 식별자에는 인증서의 속성과 비슷한 속성이 있습니다. CERT_STORE_UPDATE_KEYID_FLAG 설정된 경우 CERT_KEY_PROV_INFO_PROP_ID 속성이 있는 저장소 위치의 모든 키 식별자에 대해 해당 속성은 키 식별자 속성 CERT_KEY_PROV_INFO_PROP_ID 또는 해당 키 식별자와 관련된 인증서의 CERT_KEY_IDENTIFIER_PROP_ID 자동으로 업데이트됩니다.
CERT_STORE_BACKUP_RESTORE_FLAG
스레드의 SE_BACKUP_NAME 및 SE_RESTORE_NAME 권한을 사용하여 레지스트리 또는 파일 기반 시스템 저장소를 엽니다. 스레드에 이러한 권한이 없는 경우 액세스 거부 오류로 이 함수가 실패해야 합니다.
 

CERT_STORE_PROV_SYSTEM, CERT_STORE_PROV_SYSTEM_REGISTRYCERT_STORE_PROV_PHYSICAL 공급자 유형은 다음과 같은 높은 dwFlags 단어를 사용하여 시스템 저장소 레지스트리 위치를 지정합니다.

CERT_SYSTEM_STORE_CURRENT_SERVICE

CERT_SYSTEM_STORE_CURRENT_USER

CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY

CERT_SYSTEM_STORE_LOCAL_MACHINE

CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE

CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY

CERT_SYSTEM_STORE_SERVICES

CERT_SYSTEM_STORE_USERS

기본적으로 시스템 저장소 위치는 HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE또는 HKEY_USERS 미리 정의된 레지스트리 키를 기준으로 열립니다. 자세한 내용은 시스템 저장소 위치를 참조하세요.

다음 상위 단어 플래그는 이 기본 동작을 재정의합니다.

의미
CERT_SYSTEM_STORE_RELOCATE_FLAG
설정되면 pvPara 는 문자열이 아닌 CERT_SYSTEM_STORE_RELOCATE_PARA 구조체에 대한 포인터를 포함해야 합니다. 구조체는 저장소의 이름과 레지스트리의 위치를 모두 나타냅니다.
CERT_SYSTEM_STORE_UNPROTECTED_FLAG
기본적으로 CurrentUser "루트" 저장소가 열리면 이 함수가 반환되기 전에 보호된 루트 목록에 없는 SystemRegistry 루트가 캐시에서 삭제됩니다. 이 플래그를 설정하면 이 기본값이 재정의되고 SystemRegistry의 모든 루트가 반환되고 보호된 루트 목록의 검사 만들어지지 않습니다.
 

CERT_STORE_PROV_REGISTRY 공급자는 다음과 같은 상위 단어 플래그를 사용합니다.

의미
CERT_REGISTRY_STORE_SERIALIZED_FLAG
CERT_STORE_PROV_REG 공급자는 인증서, CRL 및 CTL을 기본 저장 작업을 수행하는 대신 직렬화된 단일 저장소 하위 키에 저장합니다. 기본값은 각 인증서, CRL 또는 CTL이 적절한 하위 키 아래에 별도의 레지스트리 하위 키로 저장된다는 것입니다.

이 플래그는 주로 CurrentUserGroupPolicy 및 LocalMachineGroupPolicy 저장소와 같은 GPT(그룹 정책 템플릿)에서 다운로드한 저장소에 사용됩니다.

CERT_REGISTRY_STORE_SERIALIZED_FLAG 설정되면 CERT_STORE_CTRL_COMMIT 사용하여CertCloseStore 또는 CertControlStore를 호출할 때까지 저장소 추가, 삭제 또는 속성 변경 내용이 유지되지 않습니다.

CERT_REGISTRY_STORE_REMOTE_FLAG
pvPara 에는 원격 컴퓨터의 레지스트리 키에 대한 핸들이 포함되어 있습니다. 원격 컴퓨터의 레지스트리 키에 액세스하려면 액세스를 허용하도록 원격 컴퓨터에 대한 보안 권한을 설정해야 합니다. 자세한 내용은 설명 부분을 참조하세요.
 

CERT_STORE_PROV_FILECERT_STORE_PROV_FILENAME 공급자 형식은 다음과 같은 상위 단어 플래그를 사용합니다.

의미
CERT_FILE_STORE_COMMIT_ENABLE
이 플래그를 설정하면 CertCloseStore가 호출되거나 CERT_STORE_CONTROL_COMMIT 사용하여 CertControlStore가 호출되는 경우 저장소에 추가되거나 저장소의 컨텍스트 속성에 대한 변경 내용 이 파일 저장소에 커밋됩니다.

CERT_FILE_STORE_COMMIT_ENABLE 및 CERT_STORE_READONLY_FLAG 모두 dwFlags에 설정된 경우 CertOpenStore는 E_INVALIDARG 함께 실패합니다.

 

CERT_STORE_PROV_LDAP 공급자 형식은 다음과 같은 상위 단어 플래그를 사용합니다.

의미
CERT_LDAP_STORE_SIGN_FLAG
일부 애플리케이션에 필요한 무결성을 제공하려면 Kerberos 인증 프로토콜을 사용하여 LDAP 서버 간에 모든 LDAP 트래픽에 디지털 서명합니다.
CERT_LDAP_STORE_OPENED_FLAG
이 플래그를 사용하여 기존 LDAP 세션을 사용합니다. 이 플래그를 지정하면 pvPara 매개 변수는 사용할 LDAP 세션에 대한 정보를 포함하는 CERT_LDAP_STORE_OPENED_PARA 구조체의 주소입니다.
CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG
pvPara 매개 변수에 명명된 URL에서 A 레코드 전용 DNS 조회를 수행합니다. 이렇게 하면 URL 호스트 이름을 확인할 때 거짓 DNS 쿼리가 생성되지 않습니다. pvPara 매개 변수의 도메인 이름이 아닌 호스트 이름을 전달할 때 이 플래그를 사용합니다.
CERT_LDAP_STORE_UNBIND_FLAG
이 플래그를 CERT_LDAP_STORE_OPENED_FLAG 플래그와 함께 사용하면 저장소가 닫힐 때 LDAP 세션이 바인딩되지 않습니다. 저장소를 닫을 때 시스템은 ldap_unbind 함수를 사용하여 LDAP 세션의 바인딩을 해제합니다.

[in] pvPara

이 함수에 대한 추가 정보를 포함할 수 있는 32비트 값입니다. 이 매개 변수의 내용은 lpszStoreProvider 및 기타 매개 변수의 값에 따라 달라집니다.

[in] hCertStore

열려 있고 CertAddSerializedElementToStore와 같은 다른 저장소 관련 API 호출을 호출하는 데 사용할 수 있는 메모리 내 저장소의 핸들입니다.

[in, out] pStoreProvInfo

업데이트할 CERT_STORE_PROV_INFO 구조체에 대한 포인터입니다. 데이터 구조가 0이고 cbSize 가 호출 전에 설정되었습니다.

CERT_STORE_PROV_INFO 구조체의 cStoreProvFunc 멤버는 구현되고 마지막으로 설정해야 하는 콜백 함수의 수입니다. cStoreProvFunc가 설정되면 CertAddEncodedCertificateToStore와 같은 모든 후속 저장소 호출은 적절한 공급자 콜백 함수를 호출합니다.

반환 값

성공하면 TRUE이고, 그렇지 않으면 FALSE입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wincrypt.h

추가 정보

CERT_STORE_PROV_INFO

콜백 함수

CertAddEncodedCertificateToStore

CertOpenStore