Bagikan melalui


Fungsi BCryptEnumRegisteredProviders (bcrypt.h)

Fungsi BCryptEnumRegisteredProviders mengambil informasi tentang penyedia terdaftar.

Sintaks

NTSTATUS BCryptEnumRegisteredProviders(
  [in, out] ULONG            *pcbBuffer,
  [in, out] PCRYPT_PROVIDERS *ppBuffer
);

Parameter

[in, out] pcbBuffer

Penunjuk ke nilai ULONG yang, pada entri, berisi ukuran, dalam byte, dari buffer yang diacu oleh parameter ppBuffer . Saat keluar, nilai ini menerima jumlah byte yang disalin ke buffer atau ukuran yang diperlukan, dalam byte, dari buffer.

Catatan Ini adalah ukuran total, dalam byte, dari seluruh buffer, bukan hanya ukuran struktur CRYPT_PROVIDERS . Buffer harus dapat menyimpan data lain untuk penyedia selain struktur CRYPT_PROVIDERS .
 

[in, out] ppBuffer

Penunjuk ke penunjuk buffer yang menerima struktur CRYPT_PROVIDERS dan data lain yang menjelaskan pengumpulan penyedia terdaftar.

Jika parameter ini NULL, fungsi ini akan mengembalikan STATUS_BUFFER_TOO_SMALL dan menempatkan dalam nilai yang ditunjukkan oleh parameter pcbBuffer , ukuran yang diperlukan, dalam byte, dari semua data.

Jika parameter ini adalah alamat penunjuk NULL , fungsi ini akan mengalokasikan memori yang diperlukan, mengisi memori dengan informasi tentang penyedia, dan menempatkan penunjuk ke memori ini dalam parameter ini. Setelah Anda selesai menggunakan memori ini, bebaskan dengan meneruskan pointer ini ke fungsi BCryptFreeBuffer .

Jika parameter ini adalah alamat penunjuk non-NULL , fungsi ini akan menyalin informasi penyedia ke dalam buffer ini. Parameter pcbBuffer harus berisi ukuran, dalam byte, dari seluruh buffer. Jika buffer tidak cukup besar untuk menyimpan semua informasi penyedia, fungsi ini akan mengembalikan STATUS_BUFFER_TOO_SMALL.

Nilai kembali

Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.

Kemungkinan kode pengembalian termasuk, tetapi tidak terbatas pada, berikut ini.

Menampilkan kode Deskripsi
STATUS_SUCCESS
Fungsi berhasil.
STATUS_BUFFER_TOO_SMALL
Ukuran yang ditentukan oleh parameter pcbBuffer tidak cukup besar untuk menyimpan semua data.
STATUS_INVALID_PARAMETER
Satu atau beberapa parameter tidak valid.

Keterangan

Fungsi BCryptEnumRegisteredProviders dapat dipanggil dengan salah satu dari dua cara:

  • Yang pertama adalah memiliki fungsi BCryptEnumRegisteredProviders yang mengalokasikan memori. Ini dicapai dengan meneruskan alamat penunjuk NULL untuk parameter ppBuffer .

    Contoh berikut menunjukkan cara menggunakan fungsi BCryptEnumRegisteredProviders untuk mengalokasikan memori dengan meneruskan alamat pointer NULL untuk parameter ppBuffer .

    PCRYPT_PROVIDERS pBuffer = NULL;
    BCryptEnumRegisteredProviders(/*...*/, &pBuffer);
    
    
    

    Kode ini akan mengalokasikan memori yang diperlukan untuk struktur CRYPT_PROVIDERS dan string terkait. Ketika fungsi BCryptEnumRegisteredProviders digunakan dengan cara ini, Anda harus membebaskan memori ketika tidak lagi diperlukan dengan meneruskan ppBuffer ke fungsi BCryptFreeBuffer .

  • Metode kedua adalah mengalokasikan memori yang diperlukan sendiri. Ini dicapai dengan memanggil fungsi BCryptEnumRegisteredProviders dengan NULL untuk parameter ppBuffer . Fungsi BCryptEnumRegisteredProviders akan ditempatkan dalam nilai yang ditunjukkan oleh parameter pcbBuffer , ukuran yang diperlukan, dalam byte, dari struktur CRYPT_PROVIDERS dan semua string. Anda kemudian mengalokasikan memori yang diperlukan dan meneruskan alamat penunjuk buffer ini untuk parameter ppBuffer dalam panggilan kedua ke fungsi BCryptEnumRegisteredProviders .

BCryptEnumRegisteredProviders hanya dapat dipanggil dalam mode pengguna.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header bcrypt.h
Pustaka Bcrypt.lib
DLL Bcrypt.dll

Lihat juga

BCryptFreeBuffer

CRYPT_PROVIDERS