Compartilhar via


Função CryptCATAdminCalcHashFromFileHandle2 (mscat.h)

A função CryptCATAdminCalcHashFromFileHandle2 calcula o hash de um arquivo usando o algoritmo especificado.

Essa função não tem nenhuma biblioteca de importação associada. Você deve usar as funções LoadLibrary e GetProcAddress para vincular dinamicamente a Wintrust.dll.

Sintaxe

BOOL CryptCATAdminCalcHashFromFileHandle2(
  [in]      HCATADMIN hCatAdmin,
  [in]      HANDLE    hFile,
  [in, out] DWORD     *pcbHash,
            BYTE      *pbHash,
            DWORD     dwFlags
);

Parâmetros

[in] hCatAdmin

Identificador de um contexto de administrador de catálogo aberto. Para obter mais informações, consulte CryptCATAdminAcquireContext2.

[in] hFile

Um identificador para o arquivo cujo hash está sendo calculado. Esse parâmetro não pode ser NULL e deve ser um identificador de arquivo válido.

[in, out] pcbHash

Ponteiro para uma variável DWORD que contém o número de bytes no parâmetro pbHash . Após a entrada, defina pcbHash como o número de bytes alocados para pbHash. Após o retorno, pcbHash contém o número de bytes retornados em pbHash. Se pbHash for definido como NULL, pcbHash conterá o número de bytes a serem alocados para pbHash.

pbHash

Ponteiro para um buffer BYTE que recebe o hash. Se você definir esse parâmetro como NULL, pcbHash conterá o número de bytes a serem alocados para pbHash e uma chamada subsequente poderá ser feita para recuperar o hash.

dwFlags

Reservado. Esse valor precisa ser zero.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero (TRUE).

Se a função falhar, o valor retornado será zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.

A tabela a seguir lista os códigos de erro mais comumente retornados pela função GetLastError .

Código de retorno Descrição
ERROR_INVALID_PARAMETER
O parâmetro hFile não deve ser NULL.

O parâmetro hFile deve ser um identificador de arquivo válido.

O parâmetro pcbHash não deve ser NULL.

O parâmetro dwFlags deve ser zero (0).

ERROR_INSUFFICIENT_BUFFER
O buffer apontado pelo parâmetro pbHash não era NULL , mas não era grande o suficiente para ser gravado. O tamanho correto do buffer necessário está contido no valor apontado pelo parâmetro pcbHash .
NTE_BAD_ALGID
O algoritmo de hash especificado pelo parâmetro pwszHashAlgorithm não pode ser encontrado.

Comentários

A quantidade de tempo que essa função leva para ser executada depende do comprimento do arquivo que está sendo hash, do algoritmo que está sendo usado e do local do arquivo. Por exemplo, leva vários segundos para calcular o hash de um arquivo local muito grande (algumas centenas de megabytes).

Requisitos

   
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho mscat.h
Biblioteca Wintrust.lib
DLL Wintrust.dll

Confira também

CryptCATAdminCalcHashFromFileHandle

CryptCATAdminCalcHashFromFileHandle2