Función BCryptEnumRegisteredProviders (bcrypt.h)

La función BCryptEnumRegisteredProviders recupera información sobre los proveedores registrados.

Sintaxis

NTSTATUS BCryptEnumRegisteredProviders(
  [in, out] ULONG            *pcbBuffer,
  [in, out] PCRYPT_PROVIDERS *ppBuffer
);

Parámetros

[in, out] pcbBuffer

Puntero a un valor ULONG 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.

Nota Este es el tamaño total, en bytes, de todo el búfer, no solo el tamaño de la estructura CRYPT_PROVIDERS . El búfer debe ser capaz de contener otros datos para los proveedores además de la estructura CRYPT_PROVIDERS .
 

[in, out] ppBuffer

Puntero a un puntero de búfer que recibe una estructura de CRYPT_PROVIDERS y otros datos que describen la colección de proveedores registrados.

Si este parámetro es NULL, esta función devolverá STATUS_BUFFER_TOO_SMALL 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.

Comentarios

La función BCryptEnumRegisteredProviders se puede llamar de una de estas dos maneras:

  • La primera es que la función BCryptEnumRegisteredProviders asigne la memoria. Esto se logra pasando la dirección de un puntero NULL para el parámetro ppBuffer .

    En el ejemplo siguiente se muestra cómo usar la función BCryptEnumRegisteredProviders para asignar memoria pasando la dirección de un puntero NULL para el parámetro ppBuffer .

    PCRYPT_PROVIDERS pBuffer = NULL;
    BCryptEnumRegisteredProviders(/*...*/, &pBuffer);
    
    
    

    Este código asignará la memoria necesaria para la estructura de CRYPT_PROVIDERS y las cadenas asociadas. Cuando la función BCryptEnumRegisteredProviders se usa de esta manera, debe liberar la memoria cuando ya no sea necesaria pasando ppBuffer a la función BCryptFreeBuffer .

  • El segundo método consiste en asignar la memoria necesaria usted mismo. Esto se logra llamando a la función BCryptEnumRegisteredProviders con NULL para el parámetro ppBuffer . La función BCryptEnumRegisteredProviders colocará en el valor al que apunta el parámetro pcbBuffer , el tamaño necesario, en bytes, de la estructura CRYPT_PROVIDERS y todas las cadenas. A continuación, asigne la memoria necesaria y pase la dirección de este puntero de búfer para el parámetro ppBuffer en una segunda llamada a la función BCryptEnumRegisteredProviders .

Solo se puede llamar a BCryptEnumRegisteredProviders en modo de usuario.

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

Consulte también

BCryptFreeBuffer

CRYPT_PROVIDERS