Condividi tramite


Funzione CertSetStoreProperty (wincrypt.h)

La funzione CertSetStoreProperty imposta una proprietà dell'archivio.

Sintassi

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

Parametri

[in] hCertStore

Handle per l'archivio certificati.

[in] dwPropId

Indica un intervallo di proprietà dell'archivio. I valori per le proprietà definite dall'utente devono essere esterni all'intervallo corrente di valori di proprietà di contesto predefiniti. Attualmente, i valori dwPropId definiti dall'utente iniziano a 4.096. Esiste una proprietà dell'archivio predefinita, CERT_STORE_LOCALIZED_NAME_PROP_ID, il nome localizzato dell'archivio.

[in] dwFlags

Riservato per l'uso futuro e deve essere zero.

[in] pvData

La definizione del tipo per pvData dipende dal valore dwPropId . Se dwPropId è CERT_STORE_LOCALIZED_NAME_PROP_ID, pvData punta a una struttura CRYPT_DATA_BLOB . Il membro pbData di tale struttura è un puntatore a una stringa di caratteri Unicode con terminazione null. Il membro cbData di tale struttura è un valore DWORD che contiene la lunghezza della stringa.

Per i valori dwPropId definiti dall'utente, pvData è un puntatore a un CRYPT_DATA_BLOB codificato.

Se esiste già un valore per la proprietà selezionata, il valore precedente viene sostituito.

La chiamata a questa funzione con pvData impostata su NULL elimina una proprietà.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE.

Commenti

Gli identificatori delle proprietà dell'archivio sono proprietà applicabili a un intero archivio. Non sono proprietà per un singolo certificato, CRL o contesto CTL . Attualmente, non vengono mantenute le proprietà dell'archivio.

Esempio

Nell'esempio seguente viene illustrata l'impostazione della proprietà nome localizzato di un archivio certificati aperto.

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

}

Per un altro esempio che usa questa funzione, vedere Esempio di programma C: impostazione e recupero delle proprietà dell'archivio certificati.

Requisiti

   
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione wincrypt.h
Libreria Crypt32.lib
DLL Crypt32.dll

Vedi anche

CertGetStoreProperty

Funzioni dell'archivio certificati