Función CryptEnumProviderTypesW (wincrypt.h)
Los tipos de proveedor incluyen PROV_RSA_FULL, PROV_RSA_SCHANNEL y PROV_DSS.
Sintaxis
BOOL CryptEnumProviderTypesW(
[in] DWORD dwIndex,
[in] DWORD *pdwReserved,
[in] DWORD dwFlags,
[out] DWORD *pdwProvType,
[out] LPWSTR szTypeName,
[in, out] DWORD *pcbTypeName
);
Parámetros
[in] dwIndex
Índice del siguiente tipo de proveedor que se va a enumerar.
[in] pdwReserved
Reservado para uso futuro y debe ser NULL.
[in] dwFlags
Reservado para uso futuro y debe ser cero.
[out] pdwProvType
Dirección del valor DWORD que designa el tipo de proveedor enumerado.
[out] szTypeName
Puntero a un búfer que recibe los datos del tipo de proveedor enumerado. Se trata de una cadena que incluye el carácter NULL de terminación. Algunos tipos de proveedor no tienen nombres para mostrar y, en este caso, no se devuelve ningún nombre y el valor devuelto al que apunta pcbTypeName es cero.
Este parámetro puede ser NULL para obtener el tamaño del nombre con fines de asignación de memoria. Para obtener más información, vea Recuperación de datos de longitud desconocida.
[in, out] pcbTypeName
Puntero a un valor DWORD que especifica el tamaño, en bytes, del búfer al que apunta el parámetro pszTypeName . Cuando se devuelve la función, el valor DWORD contiene el número de bytes almacenados o que se almacenarán en el búfer. Algunos tipos de proveedor no tienen nombres para mostrar y, en este caso, no se devuelve ningún nombre y el valor devuelto al que apunta pcbTypeName es cero.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es distinto de cero (TRUE).
Si se produce un error en la función, el valor devuelto es cero (FALSE). Para obtener información de error extendida, llame a GetLastError.
Los códigos de error precedidos por NTE se generan mediante el CSP concreto que se usa. A continuación se indican algunos códigos de error posibles.
Código devuelto | Descripción |
---|---|
|
No hay más elementos que enumerar. |
|
El sistema operativo se quedó sin memoria. |
|
El parámetro dwFlags tiene un valor no reconocido. |
|
Algo estaba mal con el registro de tipo. |
Comentarios
Esta función enumera los tipos de proveedor disponibles en un equipo. Los proveedores de cualquier tipo de proveedor específico se pueden enumerar mediante CryptEnumProviders.
Ejemplos
En el ejemplo siguiente se muestra un bucle que muestra todos los tipos de proveedor de servicios criptográficos disponibles.
#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.
}
Para obtener otro ejemplo que usa la función CryptEnumProviderTypes , vea Programa C de ejemplo: Enumeración de proveedores y tipos de proveedor de CSP.
Nota
El encabezado wincrypt.h define CryptEnumProviderTypes como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | wincrypt.h |
Library | Advapi32.lib |
Archivo DLL | Advapi32.dll |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de