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.

Nota Esse é o tamanho total, em bytes, de todo o buffer, não apenas o tamanho da estrutura CRYPT_PROVIDERS . O buffer deve ser capaz de armazenar outros dados para os provedores, além da estrutura CRYPT_PROVIDERS .
 

[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
STATUS_SUCCESS
A função foi bem-sucedida.
STATUS_BUFFER_TOO_SMALL
O tamanho especificado pelo parâmetro pcbBuffer não é grande o suficiente para manter todos os dados.
STATUS_INVALID_PARAMETER
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

Confira também

BCryptFreeBuffer

CRYPT_PROVIDERS