CryptEnumProviderTypesA-Funktion (wincrypt.h)
Anbietertypen umfassen PROV_RSA_FULL, PROV_RSA_SCHANNEL und PROV_DSS.
Syntax
BOOL CryptEnumProviderTypesA(
[in] DWORD dwIndex,
[in] DWORD *pdwReserved,
[in] DWORD dwFlags,
[out] DWORD *pdwProvType,
[out] LPSTR szTypeName,
[in, out] DWORD *pcbTypeName
);
Parameter
[in] dwIndex
Index des nächsten Anbietertyps, der aufgezählt werden soll.
[in] pdwReserved
Reserviert für die zukünftige Verwendung und muss NULL-sein.
[in] dwFlags
Reserviert für die zukünftige Verwendung und muss null sein.
[out] pdwProvType
Adresse des DWORD- Werts, der den Aufzählungsanbietertyp angibt.
[out] szTypeName
Ein Zeiger auf einen Puffer, der die Daten vom Aufzählungsanbietertyp empfängt. Dies ist eine Zeichenfolge, die das beendende NULL-zeichen. Einige Anbietertypen weisen keine Anzeigenamen auf, und in diesem Fall wird kein Name zurückgegeben, und der zurückgegebene Wert, auf den pcbTypeName verweist, ist Null.
Dieser Parameter kann NULL- sein, um die Größe des Namens für Speicherzuweisungszwecke abzurufen. Weitere Informationen finden Sie unter Abrufen von Daten unbekannter Länge.
[in, out] pcbTypeName
Ein Zeiger auf einen DWORD- Wert, der die Größe des Puffers in Bytes angibt, auf den der pszTypeName-Parameter verweist. Wenn die Funktion zurückgegeben wird, enthält der DWORD- Wert die Anzahl der im Puffer gespeicherten oder zu speichernden Bytes. Einige Anbietertypen weisen keine Anzeigenamen auf, und in diesem Fall wird kein Name zurückgegeben, und der zurückgegebene Wert, auf den pcbTypeName verweist, ist Null.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null (TRUE).
Wenn die Funktion fehlschlägt, ist der Rückgabewert null (FALSE). Rufen Sie für erweiterte Fehlerinformationen GetLastError-auf.
Die von NTE vorgestellten Fehlercodes werden von dem verwendeten CSP generiert. Einige mögliche Fehlercodes folgen.
Rückgabecode | Beschreibung |
---|---|
|
Es gibt keine weiteren Elemente, die aufgezählt werden sollen. |
|
Das Betriebssystem hat nicht genügend Arbeitsspeicher. |
|
Der dwFlags Parameter weist einen unbekannten Wert auf. |
|
Bei der Typregistrierung ist ein Fehler aufgetreten. |
Bemerkungen
Diese Funktion listet die Anbietertypen auf, die auf einem Computer verfügbar sind. Anbieter für jeden bestimmten Anbietertyp können mit CryptEnumProvidersaufgezählt werden.
Beispiele
Das folgende Beispiel zeigt eine Schleife, die alle verfügbaren Kryptografiedienstanbietertypen auflistet.
#include <stdio.h>
#include <windows.h>
#include <Wincrypt.h>
#pragma comment(lib, "advapi32.lib")
void main()
{
// Copyright (C) Microsoft. All rights reserved.
// Declare and initialize variables.
DWORD dwIndex;
DWORD dwType;
DWORD cbName;
LPTSTR pszName;
//--------------------------------------------------------------
// Print header lines for provider types.
printf("Listing Available Provider Types:\n");
printf("Provider type\tProvider Type Name\n");
printf("_____________\t_____________________________________\n");
// Loop through enumerating provider types.
dwIndex = 0;
while(CryptEnumProviderTypes(
dwIndex,
NULL,
0,
&dwType,
NULL,
&cbName
))
{
//-----------------------------------------------------------
// cbName returns the length of the name of the next
// provider type. Allocate memory in a buffer to retrieve
// that name.
if (!(pszName = (LPTSTR)LocalAlloc(LMEM_ZEROINIT, cbName)))
{
printf("ERROR - LocalAlloc failed.\n");
exit(1);
}
//-----------------------------------------------------------
// Get the provider type name.
if (CryptEnumProviderTypes(
dwIndex++,
NULL,
NULL,
&dwType,
pszName,
&cbName))
{
printf (" %4.0d\t%s\n",dwType, pszName);
}
else
{
printf("ERROR - CryptEnumProviderTypes\n");
exit(1);
}
LocalFree(pszName);
} // End of while loop.
}
Ein weiteres Beispiel, das die CryptEnumProviderTypes-Funktion verwendet, finden Sie unter Beispiel-C-Programm: Aufzählen von CSP-Anbietern und Anbietertypen.
Anmerkung
Der wincrypt.h-Header definiert CryptEnumProviderTypes als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | wincrypt.h |
Library | Advapi32.lib |
DLL- | Advapi32.dll |