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 |
---|---|
|
Recuperar provedores de modo de usuário. |
|
Recuperar provedores de modo kernel. |
|
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.
[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
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 |
---|---|
|
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 parâmetros não são válidos. |
|
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 |