Compartilhar via


Função NCryptStreamOpenToProtect (ncryptprotect.h)

A função NCryptStreamOpenToProtect abre um objeto de fluxo que pode ser usado para criptografar grandes quantidades de dados para um determinado descritor de proteção. Chame NCryptStreamUpdate para criptografar o conteúdo. Para criptografar mensagens menores, como chaves e senhas, chame NCryptProtectSecret.

Sintaxe

SECURITY_STATUS NCryptStreamOpenToProtect(
  [in]           NCRYPT_DESCRIPTOR_HANDLE   hDescriptor,
                 DWORD                      dwFlags,
  [in, optional] HWND                       hWnd,
  [in]           NCRYPT_PROTECT_STREAM_INFO *pStreamInfo,
  [out]          NCRYPT_STREAM_HANDLE       *phStream
);

Parâmetros

[in] hDescriptor

Identificador do descritor de proteção. Crie o identificador chamando NCryptCreateProtectionDescriptor.

dwFlags

O sinalizador pode ser zero ou o valor a seguir.

Valor Significado
NCRYPT_SILENT_FLAG
Solicita que o provedor de serviços de chave não exiba uma interface do usuário.

[in, optional] hWnd

Manipule para a janela pai da interface do usuário, se houver, a ser exibida.

[in] pStreamInfo

Ponteiro para uma estrutura NCRYPT_PROTECT_STREAM_INFO que contém o endereço de uma função de retorno de chamada definida pelo usuário para receber os dados criptografados e um ponteiro para dados de contexto definidos pelo usuário.

[out] phStream

Ponteiro para o identificador do objeto de fluxo.

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
ERROR_SUCCESS
A função foi bem-sucedida.
NTE_BAD_FLAGS
O parâmetro dwFlags deve conter zero (0), NCRYPT_MACHINE_KEY_FLAG ou NCRYPT_SILENT_FLAG.
NTE_INVALID_HANDLE
O identificador especificado pelo parâmetro hDescriptor não é válido.
NTE_INVALID_PARAMETER
Os parâmetros phStream e pStreamInfo não podem ser NULL.

A função de retorno de chamada apontada pelo membro pfnStreamOutput da estrutura NCRYPT_PROTECT_STREAM_INFO apontada pelo parâmetro pStreamInfo não pode ser NULL.

NTE_NO_MEMORY
Não havia memória suficiente para alocar um fluxo de dados.

Comentários

A função NCryptStreamOpenToProtect cria um objeto de fluxo interno que pode ser usado para criptografar mensagens grandes. Você não pode usar o objeto diretamente. Em vez disso, você deve usar o identificador de objeto retornado por essa função.

Chame essa função antes de chamar a função NCryptStreamUpdate . Se você estiver criptografando um arquivo grande, use NCryptStreamUpdate em um loop que avança pelo bloco de arquivos por bloco, criptografando cada bloco conforme ele avança e notificando o retorno de chamada quando cada bloco for concluído. Para obter mais informações, consulte NCryptStreamUpdate.

A função NCryptStreamOpenToProtect grava a cadeia de caracteres de regra do descritor de proteção não criptografada no cabeçalho do objeto de fluxo para que NCryptStreamOpenToUnprotect possa iniciar a descriptografia do fluxo usando o mesmo protetor usado durante a criptografia.

Requisitos

Requisito Valor
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 ncryptprotect.h
Biblioteca NCrypt.lib
DLL NCrypt.dll

Confira também

Funções DPAPI do CNG

NCRYPT_PROTECT_STREAM_INFO

NCryptCreateProtectionDescriptor

NCryptStreamClose

NCryptStreamOpenToUnprotect

NCryptStreamUpdate