Bagikan melalui


Fungsi BCryptResolveProviders (bcrypt.h)

Fungsi BCryptResolveProviders mendapatkan koleksi semua penyedia yang memenuhi kriteria yang ditentukan.

Sintaksis

NTSTATUS BCryptResolveProviders(
  [in, optional] LPCWSTR              pszContext,
  [in, optional] ULONG                dwInterface,
  [in, optional] LPCWSTR              pszFunction,
  [in, optional] LPCWSTR              pszProvider,
  [in]           ULONG                dwMode,
  [in]           ULONG                dwFlags,
  [in, out]      ULONG                *pcbBuffer,
  [in, out]      PCRYPT_PROVIDER_REFS *ppBuffer
);

Parameter

[in, optional] pszContext

Penunjuk ke string Unicode yang dihentikan null yang berisi pengidentifikasi konteks untuk mendapatkan penyedia. Jika ini diatur ke null atau ke string kosong, konteks default diasumsikan.

[in, optional] dwInterface

Pengidentifikasi antarmuka yang harus didukung penyedia. Ini harus menjadi salah satu pengidentifikasi Antarmuka CNG . Jika parameter pszFunction tidak null atau string kosong, Anda dapat mengatur dwInterface ke nol untuk memaksa fungsi menyimpulkan antarmuka.

[in, optional] pszFunction

Penunjuk ke string Unicode yang dihentikan null yang berisi algoritma atau pengidentifikasi fungsi yang harus didukung penyedia. Ini bisa menjadi salah satu pengidentifikasi Algoritma CNG standar atau pengidentifikasi untuk algoritma terdaftar lainnya. Jika dwInterface diatur ke nilai bukan nol, maka pszFunction dapat NULL untuk menyertakan semua algoritma dan fungsi.

[in, optional] pszProvider

Penunjuk ke string Unicode yang dihentikan null yang berisi nama penyedia yang akan diambil. Jika parameter ini NULL, maka semua penyedia akan disertakan.

Parameter ini memungkinkan Anda menentukan penyedia tertentu untuk diambil jika lebih dari satu penyedia memenuhi kriteria lainnya.

[in] dwMode

Menentukan jenis penyedia yang akan diambil. Ini bisa menjadi salah satu nilai berikut.

Nilai Arti
CRYPT_UM
Mengambil penyedia mode pengguna.
CRYPT_KM
Ambil penyedia mode kernel.
CRYPT_MM
Ambil mode pengguna dan penyedia mode kernel.

[in] dwFlags

Sekumpulan bendera yang mengubah perilaku fungsi ini.

Ini bisa berupa nol atau kombinasi dari satu atau beberapa nilai berikut.

Nilai Arti
CRYPT_ALL_FUNCTIONS
1
Fungsi ini akan mengambil semua fungsi yang didukung oleh setiap penyedia yang memenuhi kriteria yang ditentukan. Jika bendera ini tidak ditentukan, fungsi ini hanya akan mengambil fungsi pertama penyedia atau penyedia yang memenuhi kriteria yang ditentukan.
CRYPT_ALL_PROVIDERS
2
Fungsi ini akan mengambil semua penyedia yang memenuhi kriteria yang ditentukan. Jika bendera ini tidak ditentukan, fungsi ini hanya akan mengambil penyedia pertama yang ditemukan yang memenuhi kriteria yang ditentukan.

[in, out] pcbBuffer

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

[in, out] ppBuffer

Alamat penunjuk CRYPT_PROVIDER_REFS yang menerima kumpulan penyedia yang memenuhi kriteria yang ditentukan.

Jika parameter ini null, fungsi ini akan mengembalikan STATUS_SUCCESS 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 NULL non-, 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.

Mengembalikan nilai

Mengembalikan kode status yang menunjukkan keberhasilan atau kegagalan fungsi.

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

Mengembalikan 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.
STATUS_NOT_FOUND
Tidak ada penyedia yang dapat ditemukan yang memenuhi semua kriteria yang ditentukan.

Komentar

BCryptResolveProviders dapat dipanggil baik dari mode pengguna atau mode kernel. Pemanggil mode kernel harus dijalankan di PASSIVE_LEVELIRQL.

Persyaratan

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