Fungsi CryptGetDefaultProviderA (wincrypt.h)
Sintaksis
BOOL CryptGetDefaultProviderA(
[in] DWORD dwProvType,
[in] DWORD *pdwReserved,
[in] DWORD dwFlags,
[out] LPSTR pszProvName,
[in, out] DWORD *pcbProvName
);
Parameter
[in] dwProvType
Jenis penyedia tempat nama CSP default akan ditemukan.
Jenis penyedia yang ditentukan adalah sebagai berikut:
- PROV_RSA_FULL
- PROV_RSA_SIG
- PROV_DSS
- PROV_DSS_DH
- PROV_DH_SCHANNEL
- PROV_FORTEZZA
- PROV_MS_EXCHANGE
- PROV_RSA_SCHANNEL
- PROV_SSL
[in] pdwReserved
Parameter ini dicadangkan untuk digunakan di masa mendatang dan harus NULL.
[in] dwFlags
Nilai bendera berikut ditentukan.
[out] pszProvName
Penunjuk ke buffer string karakter yang dihentikan null untuk menerima nama CSP default.
Untuk menemukan ukuran buffer untuk tujuan alokasi memori, parameter ini dapat NULL. Untuk informasi selengkapnya, lihat Mengambil DataPanjang Tidak Diketahui .
[in, out] pcbProvName
Penunjuk ke nilai DWORD
Mengembalikan nilai
Jika fungsi berhasil, nilai pengembalian bukan nol (TRUE).
Jika fungsi gagal, nilai yang dikembalikan adalah nol (FALSE). Untuk informasi kesalahan yang diperluas, panggil GetLastError.
Kode kesalahan yang diawali oleh NTE dihasilkan oleh CSP tertentu yang digunakan. Kemungkinan kode kesalahan termasuk yang berikut ini.
Mengembalikan kode | Deskripsi |
---|---|
|
Salah satu parameter berisi nilai yang tidak valid. Ini paling sering merupakan pointer yang tidak valid. |
|
Buffer untuk nama tidak cukup besar. |
|
Sistem operasi kehabisan memori. |
|
Parameter |
Komentar
Fungsi ini menentukan CSP yang diinstal saat ini ditetapkan sebagai default untuk komputer lokal atau pengguna saat ini. Informasi ini sering ditampilkan kepada pengguna.
Contoh
Contoh berikut mengambil nama CSP default untuk jenis penyedia PROV_RSA_FULL. Untuk contoh lain yang menggunakan fungsi ini, lihat Contoh Program C: Menghitung Penyedia CSP dan Jenis Penyedia.
#include <stdio.h>
#include <windows.h>
#include <Wincrypt.h>
#pragma comment(lib, "crypt32.lib")
void main()
{
DWORD cbProvName=0;
LPTSTR pbProvName=NULL;
// Copyright (C) Microsoft. All rights reserved.
// Get the length of the RSA_FULL default provider name.
if (!(CryptGetDefaultProvider(
PROV_RSA_FULL,
NULL,
CRYPT_MACHINE_DEFAULT,
NULL,
&cbProvName)))
{
printf("Error getting the length of the default "
"provider name.\n");
exit(1);
}
// Allocate local memory for the name of the default provider.
if (!(pbProvName = (LPTSTR)LocalAlloc(LMEM_ZEROINIT,
cbProvName)))
{
printf("Error during memory allocation for "
"provider name.\n");
exit(1);
}
// Get the default provider name.
if (CryptGetDefaultProvider(
PROV_RSA_FULL,
NULL,
CRYPT_MACHINE_DEFAULT,
pbProvName,
&cbProvName))
{
printf("The default provider name is %s\n",pbProvName);
}
else
{
printf("Getting the name of the provider failed.\n");
exit(1);
}
// Free resources when done.
LocalFree(pbProvName);
}
Catatan
Header wincrypt.h mendefinisikan CryptGetDefaultProvider sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
server minimum yang didukung |
Windows Server 2003 [hanya aplikasi desktop] |
Platform Target |
Windows |
Header |
wincrypt.h |
Pustaka |
Advapi32.lib |
DLL |
Advapi32.dll |
Lihat juga
Fungsi Penyedia Layanan