Compartir a través de


Función BCryptResolveProviders (bcrypt.h)

La BCryptResolveProviders función 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 CNG de . Si el parámetro pszFunction no es null o una cadena vacía, puede establecer dwInterface en cero para forzar a la función a deducir 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 se puede 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
Recuperar 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 D WORD 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 de 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 que no esnull, 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 varios parámetros no son válidos.
STATUS_NOT_FOUND
No se encontró ningún proveedor que cumpla todos los criterios especificados.

Observaciones

se puede llamar a BCryptResolveProviders desde el modo de usuario o el modo kernel. Los llamadores de modo kernel deben ejecutarse en PASSIVE_LEVELIRQL.

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2008 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de bcrypt.h
biblioteca de Bcrypt.lib
DLL de Bcrypt.dll