Função BCryptEnumRegisteredProviders (bcrypt.h)
A função BCryptEnumRegisteredProviders recupera informações sobre os provedores registrados.
Sintaxe
NTSTATUS BCryptEnumRegisteredProviders(
[in, out] ULONG *pcbBuffer,
[in, out] PCRYPT_PROVIDERS *ppBuffer
);
Parâmetros
[in, out] pcbBuffer
Um ponteiro para um valor ULONG que, na entrada, contém o tamanho, em bytes, do buffer apontado pelo parâmetro ppBuffer . Na saída, esse valor recebe o número de bytes copiados para o buffer ou o tamanho necessário, em bytes, do buffer.
[in, out] ppBuffer
Um ponteiro para um ponteiro de buffer que recebe uma estrutura CRYPT_PROVIDERS e outros dados que descrevem a coleção de provedores registrados.
Se esse parâmetro for NULL, essa função retornará STATUS_BUFFER_TOO_SMALL e colocará no valor apontado pelo parâmetro pcbBuffer , o tamanho necessário, em bytes, de todos os dados.
Se esse parâmetro for o endereço de um ponteiro NULL , essa função alocará a memória necessária, preencherá a memória com as informações sobre os provedores e colocará o ponteiro para essa memória nesse parâmetro. Quando terminar de usar essa memória, libere-a passando esse ponteiro para a função BCryptFreeBuffer .
Se esse parâmetro for o endereço de um ponteiro não NULL , essa função copiará as informações do provedor para esse buffer. O parâmetro pcbBuffer deve conter o tamanho, em bytes, de todo o buffer. Se o buffer não for grande o suficiente para conter todas as informações do provedor, essa função retornará STATUS_BUFFER_TOO_SMALL.
Retornar valor
Retorna um código status que indica o êxito ou a falha da função.
Os códigos de retorno possíveis incluem, mas não se limitam a, o seguinte.
Código de retorno | Descrição |
---|---|
|
A função foi bem-sucedida. |
|
O tamanho especificado pelo parâmetro pcbBuffer não é grande o suficiente para manter todos os dados. |
|
Um ou mais dos parâmetros não são válidos. |
Comentários
A função BCryptEnumRegisteredProviders pode ser chamada de uma das duas maneiras:
-
A primeira é fazer com que a função BCryptEnumRegisteredProviders aloque a memória. Isso é feito passando o endereço de um ponteiro NULL para o parâmetro ppBuffer .
O exemplo a seguir mostra como usar a função BCryptEnumRegisteredProviders para alocar memória passando o endereço de um ponteiro NULL para o parâmetro ppBuffer .
PCRYPT_PROVIDERS pBuffer = NULL; BCryptEnumRegisteredProviders(/*...*/, &pBuffer);
Esse código alocará a memória necessária para a estrutura CRYPT_PROVIDERS e as cadeias de caracteres associadas. Quando a função BCryptEnumRegisteredProviders é usada dessa maneira, você deve liberar a memória quando ela não for mais necessária passando ppBuffer para a função BCryptFreeBuffer .
- O segundo método é alocar a memória necessária por conta própria. Isso é feito chamando a função BCryptEnumRegisteredProviders com NULL para o parâmetro ppBuffer . A função BCryptEnumRegisteredProviders colocará no valor apontado pelo parâmetro pcbBuffer , o tamanho necessário, em bytes, da estrutura CRYPT_PROVIDERS e todas as cadeias de caracteres. Em seguida, você aloca a memória necessária e passa o endereço desse ponteiro de buffer para o parâmetro ppBuffer em uma segunda chamada para a função BCryptEnumRegisteredProviders .
BCryptEnumRegisteredProviders só pode ser chamado no modo de usuário.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | bcrypt.h |
Biblioteca | Bcrypt.lib |
DLL | Bcrypt.dll |