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

備註

市集屬性識別碼是適用于整個存放區的屬性。 它們不是個別 憑證CRLCTL 內容的屬性。 目前,不會保存任何存放區屬性。

範例

下列範例顯示設定開啟憑證存放區的當地語系化名稱屬性。

//--------------------------------------------------------------
// 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

憑證存放區函式