Freigeben über


CertGetStoreProperty-Funktion (wincrypt.h)

Die CertGetStoreProperty-Funktion ruft eine Speichereigenschaft ab.

Syntax

BOOL CertGetStoreProperty(
  [in]      HCERTSTORE hCertStore,
  [in]      DWORD      dwPropId,
  [out]     void       *pvData,
  [in, out] DWORD      *pcbData
);

Parameter

[in] hCertStore

Ein Handle eines geöffneten Zertifikatspeichers.

[in] dwPropId

Gibt eine von einem Bereich von Speichereigenschaften an. Es gibt eine vordefinierte Speichereigenschaft, CERT_STORE_LOCALIZED_NAME_PROP_ID, den lokalisierten Namen des Speichers.

Benutzerdefinierte Eigenschaften müssen sich außerhalb des aktuellen Wertebereichs für vordefinierte Kontexteigenschaften befinden. Derzeit beginnen benutzerdefinierte dwPropId-Werte bei 4.096.

[out] pvData

Ein Zeiger auf einen Puffer, der die Daten empfängt, wie von dwPropId bestimmt. Für CERT_STORE_LOCALIZED_NAME_PROP_ID ist dies der lokalisierte Name des Speichers, und pvData verweist auf eine Unicode-Breitzeichenzeichenfolge mit NULL-Beendigung. Bei anderen dwPropIds zeigt pvData auf ein Bytearray.

Dieser Parameter kann NULL sein, um die Größe dieser Informationen für Speicherzuordnungszwecke festzulegen. Weitere Informationen finden Sie unter Abrufen von Daten unbekannter Länge.

[in, out] pcbData

Ein Zeiger auf einen DWORD-Wert , der die Größe des pvData-Puffers in Bytes angibt. Wenn die Funktion zurückgibt, enthält der DWORD-Wert die Anzahl der im Puffer gespeicherten Bytes.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion nonzero zurück.

Wenn die Funktion fehlschlägt, gibt sie null zurück.

Wenn die store-Eigenschaft gefunden wird, gibt die Funktion nonzero zurück, pvData verweist auf die -Eigenschaft und pcbData auf die Länge der Zeichenfolge. Wenn die Store-Eigenschaft nicht gefunden wird, gibt die Funktion null zurück, und GetLastError gibt CRYPT_E_NOT_FOUND zurück.

Hinweise

Store-Eigenschaftsbezeichner sind Eigenschaften, die für einen gesamten Speicher gelten. Sie sind keine Eigenschaften für einen einzelnen Zertifikat-, Zertifikatsperrlisten- oder Zertifikatvertrauenslistenkontext (Certificate Trust List , CTL). Derzeit werden keine Speichereigenschaften beibehalten.

Um den lokalisierten Namen eines Speichers zu finden, können Sie auch die Funktion CryptFindLocalizedName verwenden.

Beispiele

Das folgende Beispiel zeigt das Abfragen eines Speichers nach seiner lokalen Namenseigenschaft. Ähnlicher Code kann verwendet werden, um andere Speichereigenschaften abzurufen. Ein vollständiges Beispiel, das diese Funktion verwendet, finden Sie unter Beispiel C-Programm: Festlegen und Abrufen von Zertifikatspeichereigenschaften.

#include <windows.h>
#include <stdio.h>
#include <Wincrypt.h>


//--------------------------------------------------------------------
// Declare and initialize variables.
void *pvData = NULL;
DWORD cbData = 0;

//--------------------------------------------------------------------
// Call CertGetStoreProperty a first time
// to get the length of the store name string to be returned.
// hCertStore is a previously assigned HCERTSTORE variable that
// represents an open certificate store.
if(CertGetStoreProperty(
    hCertStore,
    CERT_STORE_LOCALIZED_NAME_PROP_ID,
    NULL,     // NULL on the first call  
              // to establish the length of the string
              // to be returned
    &cbData))
{
     printf("The length of the property is %d. \n",cbData);
}
else
{
     printf("The length of the property was not calculated.\n");
     exit(1);
}

//--------------------------------------------------------------------
// cbData is the length of a string to be allocated. 
// Allocate the space for the string and call the function a 
// second time.
if(pvData = malloc(cbData))
{
     printf("%d bytes of memory allocated.\n",cbData);
}
else
{
     printf("Memory was not allocated.\n");
     exit(1);
}

// Call CertGetStoreProperty a second time
// to copy the local store name into the pvData buffer.
if(CertGetStoreProperty(
    hCertStore,
    CERT_STORE_LOCALIZED_NAME_PROP_ID,
    pvData,
    &cbData))
{
     printf("The localized name is %S.\n",pvData);
}
else
{
     printf("CertGetStoreProperty failed.\n");
     exit(1);
}

// Free memory when done.
if (pvData)
    free(pvData);

Anforderungen

Anforderung Wert
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

CertSetStoreProperty

Zertifikatspeicherfunktionen