Função BCryptDuplicateHash (bcrypt.h)
A função
Sintaxe
NTSTATUS BCryptDuplicateHash(
[in] BCRYPT_HASH_HANDLE hHash,
[out] BCRYPT_HASH_HANDLE *phNewHash,
[out] PUCHAR pbHashObject,
[in] ULONG cbHashObject,
[in] ULONG dwFlags
);
Parâmetros
[in] hHash
O identificador do objeto hash ou MAC a ser duplicado.
[out] phNewHash
Um ponteiro para um valor BCRYPT_HASH_HANDLE que recebe o identificador que representa o hash duplicado ou o objeto MAC.
[out] pbHashObject
Um ponteiro para um buffer que recebe o hash duplicado ou o objeto MAC. O parâmetro cbHashObject
Quando o identificador de hash duplicado for liberado, libere essa memória.
[in] cbHashObject
O tamanho, em bytes, do buffer pbHashObject
[in] dwFlags
Um conjunto de sinalizadores que modificam o comportamento dessa função. Nenhum sinalizador está definido no momento, portanto, esse parâmetro deve ser zero.
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 do objeto hash especificado pelo parâmetro cbHashObject não é grande o suficiente para manter o objeto hash. |
|
O identificador de hash no parâmetro hHash |
|
Um ou mais parâmetros não são válidos. |
Observações
Essa função é útil ao calcular um hash ou MAC em um bloco de dados comuns. Depois que os dados comuns forem processados, o objeto hash ou MAC poderá ser duplicado e, em seguida, os dados exclusivos poderão ser adicionados aos objetos individuais.
Dependendo de quais modos de processador um provedor dá suporte, BCryptDuplicateHash podem ser chamados do modo de usuário ou do modo kernel. Os chamadores do modo kernel podem ser executados em PASSIVE_LEVELIRQL ou DISPATCH_LEVEL IRQL. Se o nível IRQL atual for DISPATCH_LEVEL, o identificador fornecido no parâmetro hHash deverá ser derivado de um identificador de algoritmo retornado por um provedor que foi aberto usando o sinalizador BCRYPT_PROV_DISPATCH e quaisquer ponteiros passados para a função BCryptDestroyKey devem se referir à memória não paga (ou bloqueada).
Para chamar essa função no modo kernel, use Cng.lib, que faz parte do DDK (Driver Development Kit). Windows Server 2008 e Windows Vista: Para chamar essa função no modo kernel, use Ksecdd.lib.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
da Plataforma de Destino |
Windows |
cabeçalho | bcrypt.h |
biblioteca | Bcrypt.lib |
de DLL |
Bcrypt.dll |