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 aufgelistet werden soll.
[in] pdwReserved
Für die zukünftige Verwendung reserviert und muss NULL sein.
[in] dwFlags
Für die zukünftige Verwendung reserviert und muss null sein.
[out] pdwProvType
Adresse des DWORD-Werts , der den aufgezählten Anbietertyp vorgibt.
[out] szTypeName
Ein Zeiger auf einen Puffer, der die Daten vom aufgezählten Anbietertyp empfängt. Dies ist eine Zeichenfolge, die das beendende NULL-Zeichen enthält. Einige Anbietertypen haben keine Anzeigenamen, und in diesem Fall wird kein Name zurückgegeben, und der zurückgegebene Wert, auf den von pcbTypeName verwiesen wird, ist 0.
Dieser Parameter kann NULL sein, um die Größe des Namens für Speicherbelegungszwecke 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 parameter pszTypeName verweist. Wenn die Funktion zurückgibt, enthält der DWORD-Wert die Anzahl der Bytes, die im Puffer gespeichert oder gespeichert werden sollen. Einige Anbietertypen haben keine Anzeigenamen, und in diesem Fall wird kein Name zurückgegeben, und der zurückgegebene Wert, auf den von pcbTypeName verwiesen wird, ist 0.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert nonzero (TRUE).
Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (FALSE). Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.
Die von NTE vorangestellten Fehlercodes werden vom verwendeten CSP generiert. Es folgen einige mögliche Fehlercodes.
Rückgabecode | Beschreibung |
---|---|
|
Es gibt keine weiteren Elemente, die aufgelistet werden müssen. |
|
Dem Betriebssystem war der Arbeitsspeicher nicht mehr vorhanden. |
|
Der dwFlags-Parameter verfügt über einen nicht erkannten Wert. |
|
Bei der Typregistrierung war ein Fehler aufgetreten. |
Hinweise
Diese Funktion listet die anbietertypen auf, die auf einem Computer verfügbar sind. Anbieter für einen bestimmten Anbietertyp können mithilfe von CryptEnumProviders aufgelistet 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ählung von CSP-Anbietern und Anbietertypen.
Hinweis
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 nicht codierungsneutralem Code 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 |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wincrypt.h |
Bibliothek | Advapi32.lib |
DLL | Advapi32.dll |