Share via


Función BCryptResolveProviders (bcrypt.h)

La función BCryptResolveProviders obtiene una colección de todos los proveedores que cumplen los criterios especificados.

Sintaxis

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
);

Parámetros

[in, optional] pszContext

Puntero a una cadena Unicode terminada en null que contiene el identificador del contexto para el que se van a obtener los proveedores. Si se establece en NULL o en una cadena vacía, se asume el contexto predeterminado.

[in, optional] dwInterface

Identificador de una interfaz que el proveedor debe admitir. Debe ser uno de los identificadores de interfaz de CNG. Si el parámetro pszFunction no es NULL o una cadena vacía, puede establecer dwInterface en cero para forzar que la función infiera la interfaz.

[in, optional] pszFunction

Puntero a una cadena Unicode terminada en null que contiene el algoritmo o el identificador de función que el proveedor debe admitir. Puede ser uno de los identificadores de algoritmo de CNG estándar o el identificador de otro algoritmo registrado. Si dwInterface se establece en un valor distinto de cero, pszFunction puede ser NULL para incluir todos los algoritmos y funciones.

[in, optional] pszProvider

Puntero a una cadena Unicode terminada en null que contiene el nombre del proveedor que se va a recuperar. Si este parámetro es NULL, se incluirán todos los proveedores.

Este parámetro permite especificar un proveedor específico para recuperar en caso de que más de un proveedor cumpla los demás criterios.

[in] dwMode

Especifica el tipo de proveedor que se va a recuperar. Puede ser uno de los siguientes valores.

Valor Significado
CRYPT_UM
Recuperar proveedores de modo de usuario.
CRYPT_KM
Recupere los proveedores de modo kernel.
CRYPT_MM
Recupere tanto el modo de usuario como los proveedores de modo kernel.

[in] dwFlags

Conjunto de marcas que modifican el comportamiento de esta función.

Puede ser cero o una combinación de uno o varios de los valores siguientes.

Valor Significado
CRYPT_ALL_FUNCTIONS
1
Esta función recuperará todas las funciones admitidas por cada proveedor que cumpla los criterios especificados. Si no se especifica esta marca, esta función solo recuperará la primera función del proveedor o proveedores que cumplen los criterios especificados.
CRYPT_ALL_PROVIDERS
2
Esta función recuperará todos los proveedores que cumplen los criterios especificados. Si no se especifica esta marca, esta función solo recuperará el primer proveedor que se encuentra que cumple los criterios especificados.

[in, out] pcbBuffer

Puntero a un valor DWORD que, en la entrada, contiene el tamaño, en bytes, del búfer al que apunta el parámetro ppBuffer . Al salir, este valor recibe el número de bytes copiados en el búfer o el tamaño necesario, en bytes, del búfer.

[in, out] ppBuffer

Dirección de un puntero CRYPT_PROVIDER_REFS que recibe la colección de proveedores que cumplen los criterios especificados.

Si este parámetro es NULL, esta función devolverá STATUS_SUCCESS y colocará en el valor al que apunta el parámetro pcbBuffer , el tamaño necesario, en bytes, de todos los datos.

Si este parámetro es la dirección de un puntero NULL , esta función asignará la memoria necesaria, rellenará la memoria con la información sobre los proveedores y colocará el puntero a esta memoria en este parámetro. Cuando haya terminado de usar esta memoria, libere este puntero a la función BCryptFreeBuffer .

Si este parámetro es la dirección de un puntero distinto de NULL , esta función copiará la información del proveedor en este búfer. El parámetro pcbBuffer debe contener el tamaño, en bytes, de todo el búfer. Si el búfer no es lo suficientemente grande como para contener toda la información del proveedor, esta función devolverá STATUS_BUFFER_TOO_SMALL.

Valor devuelto

Devuelve un código de estado que indica el éxito o error de la función.

Entre los códigos de retorno posibles se incluyen, entre otros, los siguientes.

Código devuelto Descripción
STATUS_SUCCESS
La función se realizó correctamente.
STATUS_BUFFER_TOO_SMALL
El tamaño especificado por el parámetro pcbBuffer no es lo suficientemente grande como para contener todos los datos.
STATUS_INVALID_PARAMETER
Uno o más parámetros no son válidos.
STATUS_NOT_FOUND
No se encontró ningún proveedor que cumpla todos los criterios especificados.

Comentarios

Se puede llamar a BCryptResolveProviders desde el modo de usuario o el modo kernel. Los autores de llamadas en modo kernel deben ejecutarse en PASSIVE_LEVELIRQL.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado bcrypt.h
Library Bcrypt.lib
Archivo DLL Bcrypt.dll