Fungsi CertGetStoreProperty (wincrypt.h)

Fungsi CertGetStoreProperty mengambil properti penyimpanan.

Sintaks

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

Parameter

[in] hCertStore

Handel penyimpanan sertifikat terbuka.

[in] dwPropId

Menunjukkan salah satu dari berbagai properti penyimpanan. Ada satu properti penyimpanan yang telah ditentukan sebelumnya, CERT_STORE_LOCALIZED_NAME_PROP_ID, nama toko yang dilokalkan.

Properti yang ditentukan pengguna harus berada di luar rentang nilai saat ini untuk properti konteks yang telah ditentukan sebelumnya. Saat ini, nilai dwPropId yang ditentukan pengguna dimulai pada 4.096.

[out] pvData

Penunjuk ke buffer yang menerima data seperti yang ditentukan oleh dwPropId. Untuk CERT_STORE_LOCALIZED_NAME_PROP_ID, ini adalah nama toko yang dilokalkan, dan pvData menunjuk ke string karakter lebar Unicode yang dihentikan null. Untuk dwPropIdlainnya, pvData menunjuk ke array byte.

Parameter ini dapat berupa NULL untuk mengatur ukuran informasi ini untuk tujuan alokasi memori. Untuk informasi selengkapnya, lihat Mengambil Data Dengan Panjang Tidak Diketahui.

[in, out] pcbData

Penunjuk ke nilai DWORD yang menentukan ukuran, dalam byte, dari buffer pvData . Saat fungsi kembali, nilai DWORD berisi jumlah byte yang disimpan dalam buffer.

Mengembalikan nilai

Jika fungsi berhasil, fungsi mengembalikan bukan nol.

Jika fungsi gagal, fungsi akan mengembalikan nol.

Jika properti penyimpanan ditemukan, fungsi mengembalikan bukan nol, pvData menunjuk ke properti , dan pcbData menunjuk ke panjang string. Jika properti penyimpanan tidak ditemukan, fungsi mengembalikan nol dan GetLastError mengembalikan CRYPT_E_NOT_FOUND.

Keterangan

Pengidentifikasi properti penyimpanan adalah properti yang berlaku untuk seluruh penyimpanan. Mereka bukan properti pada sertifikat individual, daftar pencabutan sertifikat (CRL), atau konteks daftar kepercayaan sertifikat (CTL). Saat ini, tidak ada properti penyimpanan yang bertahan.

Untuk menemukan nama toko yang dilokalkan, Anda juga dapat menggunakan fungsi CryptFindLocalizedName .

Contoh

Contoh berikut menunjukkan kueri penyimpanan untuk properti nama lokalnya. Kode serupa dapat digunakan untuk mengambil properti penyimpanan lainnya. Untuk contoh lengkap yang menggunakan fungsi ini, lihat Contoh Program C: Mengatur dan Mendapatkan Properti Penyimpanan Sertifikat.

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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header wincrypt.h
Pustaka Crypt32.lib
DLL Crypt32.dll

Lihat juga

CertSetStoreProperty

Fungsi Penyimpanan Sertifikat