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 |