Partager via


Fonction CertSetStoreProperty (wincrypt.h)

La fonction CertSetStoreProperty définit une propriété store.

Syntaxe

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

Paramètres

[in] hCertStore

Handle pour le magasin de certificats.

[in] dwPropId

Indique l’une d’une plage de propriétés de magasin. Les valeurs des propriétés définies par l’utilisateur doivent être en dehors de la plage actuelle de valeurs de propriété de contexte prédéfinies. Actuellement, les valeurs dwPropId définies par l’utilisateur commencent à 4 096. Il existe une propriété de magasin prédéfinie, CERT_STORE_LOCALIZED_NAME_PROP_ID, le nom localisé du magasin.

[in] dwFlags

Réservé à une utilisation future et doit être égal à zéro.

[in] pvData

La définition de type pour pvData dépend de la valeur dwPropId . Si dwPropId est CERT_STORE_LOCALIZED_NAME_PROP_ID, pvData pointe vers une structure CRYPT_DATA_BLOB . Le membre pbData de cette structure est un pointeur vers une chaîne de caractères Unicode terminée par null. Le membre cbData de cette structure est une valeur DWORD contenant la longueur de la chaîne.

Pour les valeurs dwPropId définies par l’utilisateur, pvData est un pointeur vers un CRYPT_DATA_BLOB encodé.

Si une valeur existe déjà pour la propriété sélectionnée, l’ancienne valeur est remplacée.

L’appel de cette fonction avec pvData défini sur NULL supprime une propriété.

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE.

Si la fonction échoue, la valeur de retour est FALSE.

Remarques

Les identificateurs de propriétés du magasin sont des propriétés applicables à l’ensemble d’un magasin. Il ne s’agit pas de propriétés d’un certificat, d’une liste de révocation de certificats ou d’un contexte CTL individuel. Actuellement, aucune propriété de magasin n’est conservée.

Exemples

L’exemple suivant montre comment définir la propriété de nom localisé d’un magasin de certificats ouvert.

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

}

Pour un autre exemple qui utilise cette fonction, consultez Exemple de programme C : Définition et obtention des propriétés du magasin de certificats.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête wincrypt.h
Bibliothèque Crypt32.lib
DLL Crypt32.dll

Voir aussi

CertGetStoreProperty

Fonctions du magasin de certificats