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 |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |