Freigeben über


CertSetStoreProperty-Funktion (wincrypt.h)

Die CertSetStoreProperty-Funktion legt eine Speichereigenschaft fest.

Syntax

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

Parameter

[in] hCertStore

Handle für den Zertifikatspeicher.

[in] dwPropId

Gibt eine aus einem Bereich von Speichereigenschaften an. Werte für benutzerdefinierte Eigenschaften müssen außerhalb des aktuellen Bereichs vordefinierter Kontexteigenschaftenwerte liegen. Derzeit beginnen benutzerdefinierte dwPropId-Werte bei 4.096. Es gibt eine vordefinierte Speichereigenschaft, CERT_STORE_LOCALIZED_NAME_PROP_ID, den lokalisierten Namen des Speichers.

[in] dwFlags

Für die zukünftige Verwendung reserviert und muss null sein.

[in] pvData

Die Typdefinition für pvData hängt vom dwPropId-Wert ab. Wenn dwPropId CERT_STORE_LOCALIZED_NAME_PROP_ID ist, verweist pvData auf eine CRYPT_DATA_BLOB-Struktur . Der pbData-Member dieser Struktur ist ein Zeiger auf eine Unicode-Zeichenfolge mit Null-Endung. Das cbData-Element dieser Struktur ist ein DWORD-Wert , der die Länge der Zeichenfolge enthält.

Für benutzerdefinierte dwPropId-Werte ist pvData ein Zeiger auf eine codierte CRYPT_DATA_BLOB.

Wenn bereits ein Wert für die ausgewählte Eigenschaft vorhanden ist, wird der alte Wert ersetzt.

Durch aufrufen dieser Funktion, bei der pvData auf NULL festgelegt ist, wird eine -Eigenschaft gelöscht.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE.

Hinweise

Store-Eigenschaftsbezeichner sind Eigenschaften, die für einen gesamten Speicher gelten. Sie sind keine Eigenschaften für ein einzelnes Zertifikat, eine CRL oder einen CTL-Kontext . Derzeit werden keine Speichereigenschaften beibehalten.

Beispiele

Das folgende Beispiel zeigt das Festlegen der lokalisierten Namenseigenschaft eines geöffneten Zertifikatspeichers.

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

}

Ein weiteres Beispiel, das diese Funktion verwendet, finden Sie unter Beispiel-C-Programm: Festlegen und Abrufen von Zertifikatspeichereigenschaften.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Crypt32.lib
DLL Crypt32.dll

Weitere Informationen

CertGetStoreProperty

Zertifikatspeicherfunktionen