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.
[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 |
---|---|
|
La función se realizó correctamente. |
|
El tamaño especificado por el parámetro pcbBuffer no es lo suficientemente grande como para contener todos los datos. |
|
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 |