다음을 통해 공유


CertSetStoreProperty 함수(wincrypt.h)

CertSetStoreProperty 함수는 저장소 속성을 설정합니다.

구문

BOOL CertSetStoreProperty(
  [in] HCERTSTORE hCertStore,
  [in] DWORD      dwPropId,
  [in] DWORD      dwFlags,
  [in] const void *pvData
);

매개 변수

[in] hCertStore

인증서 저장소에 대한 핸들입니다.

[in] dwPropId

저장소 속성 범위 중 하나를 나타냅니다. 사용자 정의 속성의 값은 미리 정의된 컨텍스트 속성 값의 현재 범위를 벗어나야 합니다. 현재 사용자 정의 dwPropId 값은 4,096에서 시작합니다. 미리 정의된 저장소 속성 CERT_STORE_LOCALIZED_NAME_PROP_ID 저장소의 지역화된 이름이 하나 있습니다.

[in] dwFlags

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

[in] pvData

pvData에 대한 형식 정의는 dwPropId 값에 따라 달라집니다. dwPropId가 CERT_STORE_LOCALIZED_NAME_PROP_ID 경우 pvDataCRYPT_DATA_BLOB 구조를 가리킵니다. 해당 구조체의 pbData 멤버는 null로 끝나는 유니코드 문자열에 대한 포인터입니다. 해당 구조체의 cbData 멤버는 문자열의 길이를 포함하는 DWORD 값입니다.

사용자 정의 dwPropId 값의 경우 pvData 는 인코딩된 CRYPT_DATA_BLOB 대한 포인터입니다.

선택한 속성에 대한 값이 이미 있는 경우 이전 값이 바뀝니다.

NULL로 설정된 pvData를 사용하여 이 함수를 호출하면 속성이 삭제됩니다.

반환 값

함수가 성공하면 반환 값은 TRUE입니다.

함수가 실패하면 반환 값은 FALSE입니다.

설명

스토어 속성 식별자는 전체 저장소에 적용할 수 있는 속성입니다. 개별 인증서, CRL 또는 CTL 컨텍스트에 대한 속성이 아닙니다. 현재 저장소 속성은 유지되지 않습니다.

예제

다음 예제에서는 열려 있는 인증서 저장소의 지역화된 이름 속성을 설정하는 방법을 보여줍니다.

//--------------------------------------------------------------
// Declare and initialize variables.

HCERTSTORE hCertStore = NULL;       // Original certificate store
CRYPT_DATA_BLOB Property_Name_Blob; // BLOB to hold store property

//--------------------------------------------------------------
// Open the certificate store that will have its localized name
// property set. In this case, the CA system store is opened. 

if ( hCertStore = CertOpenStore(
    CERT_STORE_PROV_SYSTEM,
    0,
    NULL,
    CERT_SYSTEM_STORE_CURRENT_USER,
    L"CA"))
{
     printf("The CA store is open.\n");
}
else
{
     printf("The CA store could not be opened \n.");
     exit(1);
}

//--------------------------------------------------------------------
// Prepare a data structure to set a store property.
// Initialize the members of the CRYPT_DATA_BLOB.
Property_Name_Blob.pbData = (BYTE *) L"The Local CA Store";
Property_Name_Blob.cbData = 
       (wcslen((LPWSTR)Property_Name_Blob.pbData)+1) * sizeof(WCHAR);

//--------------------------------------------------------------------
// Set the store's localized name property.
if (CertSetStoreProperty(
    hCertStore,
    CERT_STORE_LOCALIZED_NAME_PROP_ID,
    0,
    &Property_Name_Blob))
{
     printf("The name of the store has been set. Continue. \n");
}
else
{
     printf("Setting the store's localized name failed.\n");
     exit(1);
}

// Close the store when done.
if (!CertCloseStore(
     hCertStore,
     0 ))
{
     printf("The CA store could not be closed \n.");
     exit(1);

}

이 함수를 사용하는 또 다른 예제는 예제 C 프로그램: 인증서 저장소 속성 설정 및 가져오기를 참조하세요.

요구 사항

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

추가 정보

CertGetStoreProperty

인증서 저장소 함수