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
保留以供将来使用,必须为零。
[in] pvData
pvData 的类型定义取决于 dwPropId 值。 如果 dwPropId CERT_STORE_LOCALIZED_NAME_PROP_ID, 则 pvData 指向 CRYPT_DATA_BLOB 结构。 该结构的 pbData 成员是指向 以 null 结尾的 Unicode 字符串的指针。 该结构的 cbData 成员是包含字符串长度的 DWORD 值。
对于用户定义的 dwPropId 值, pvData 是指向编码 CRYPT_DATA_BLOB的指针。
如果所选属性的值已存在,则替换旧值。
如果 pvData 设置为 NULL ,则调用此函数会删除属性。
返回值
如果函数成功,则返回值为 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 |
Library | Crypt32.lib |
DLL | Crypt32.dll |