Função BCryptResolveProviders (bcrypt.h)

A função BCryptResolveProviders obtém uma coleção de todos os provedores que atendem aos critérios especificados.

Sintaxe

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

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o identificador do contexto para o qual obter os provedores. Se isso estiver definido como NULL ou em uma cadeia de caracteres vazia, o contexto padrão será assumido.

[in, optional] dwInterface

O identificador de uma interface que o provedor deve dar suporte. Esse deve ser um dos identificadores de interface CNG. Se o parâmetro pszFunction não for NULL ou uma cadeia de caracteres vazia, você poderá definir dwInterface como zero para forçar a função a inferir a interface.

[in, optional] pszFunction

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o algoritmo ou o identificador de função que o provedor deve dar suporte. Esse pode ser um dos identificadores de algoritmo CNG padrão ou o identificador de outro algoritmo registrado. Se dwInterface for definido como um valor diferente de zero, pszFunction poderá ser NULL para incluir todos os algoritmos e funções.

[in, optional] pszProvider

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo que contém o nome do provedor a ser recuperado. Se esse parâmetro for NULL, todos os provedores serão incluídos.

Esse parâmetro permite que você especifique um provedor específico para recuperar caso mais de um provedor atenda aos outros critérios.

[in] dwMode

Especifica o tipo de provedor a ser recuperado. Esse pode ser um dos valores a seguir.

Valor Significado
CRYPT_UM
Recuperar provedores de modo de usuário.
CRYPT_KM
Recuperar provedores de modo kernel.
CRYPT_MM
Recupere o modo de usuário e os provedores de modo kernel.

[in] dwFlags

Um conjunto de sinalizadores que modificam o comportamento dessa função.

Isso pode ser um zero ou uma combinação de um ou mais dos valores a seguir.

Valor Significado
CRYPT_ALL_FUNCTIONS
1
Essa função recuperará todas as funções compatíveis com cada provedor que atenda aos critérios especificados. Se esse sinalizador não for especificado, essa função recuperará apenas a primeira função do provedor ou provedores que atendem aos critérios especificados.
CRYPT_ALL_PROVIDERS
2
Essa função recuperará todos os provedores que atendem aos critérios especificados. Se esse sinalizador não for especificado, essa função recuperará apenas o primeiro provedor encontrado que atenda aos critérios especificados.

[in, out] pcbBuffer

Um ponteiro para um valor DWORD que, na entrada, contém o tamanho, em bytes, do buffer apontado pelo parâmetro ppBuffer. Ao sair, esse valor recebe o número de bytes copiados para o buffer ou o tamanho necessário, em bytes, do buffer.

[in, out] ppBuffer

O endereço de um ponteiro CRYPT_PROVIDER_REFS que recebe a coleção de provedores que atendem aos critérios especificados.

Se esse parâmetro for NULL, essa função retornará STATUS_SUCCESS 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 este ponteiro para a função BCryptFreeBuffer .

Se esse parâmetro for o endereço de um ponteiro de NULL não, 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.

Valor de retorno

Retorna um código de 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 parâmetros não são válidos.
STATUS_NOT_FOUND
Nenhum provedor foi encontrado que atenda a todos os critérios especificados.

Observações

BCryptResolveProviders podem ser chamados do modo de usuário ou do modo kernel. Os chamadores do modo kernel devem estar em execução em PASSIVE_LEVELIRQL.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows Server 2008 [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho bcrypt.h
biblioteca Bcrypt.lib
de DLL Bcrypt.dll