Função WriteEncryptedFileRaw (winbase.h)

Restaura (importa) arquivos criptografados. Essa é uma das funções do EFS (Encrypted File System) que se destina a implementar a funcionalidade de backup e restauração, mantendo arquivos em seu estado criptografado.

Sintaxe

DWORD WriteEncryptedFileRaw(
  [in]           PFE_IMPORT_FUNC pfImportCallback,
  [in, optional] PVOID           pvCallbackContext,
  [in]           PVOID           pvContext
);

Parâmetros

[in] pfImportCallback

Um ponteiro para a função de retorno de chamada de importação. O sistema chama a função de retorno de chamada várias vezes, cada vez passando um buffer que será preenchido pela função de retorno de chamada com uma parte dos dados do arquivo de backup. Quando a função de retorno de chamada sinaliza que todo o arquivo foi processado, ele informa ao sistema que a operação de restauração foi concluída. Para obter mais informações, consulte ImportCallback.

[in, optional] pvCallbackContext

Um ponteiro para um bloco de contexto definido pelo aplicativo e alocado. O sistema passa esse ponteiro para a função de retorno de chamada como um parâmetro para que a função de retorno de chamada possa ter acesso a dados específicos do aplicativo. Isso pode ser uma estrutura e pode conter quaisquer dados de que o aplicativo precise, como o identificador para o arquivo que conterá a cópia de backup do arquivo criptografado.

[in] pvContext

Um ponteiro para um bloco de contexto definido pelo sistema. O bloco de contexto é retornado pela função OpenEncryptedFileRaw . Não modifique-a.

Valor retornado

Se a função for bem-sucedida, o valor retornado será ERROR_SUCCESS.

Se a função falhar, ela retornará um código de erro diferente de zero definido em WinError.h. Você pode usar FormatMessage com o sinalizador FORMAT_MESSAGE_FROM_SYSTEM para obter uma descrição de texto genérica do erro.

Comentários

O arquivo que está sendo restaurado não está descriptografado; ele é restaurado em seu estado criptografado.

Para fazer backup de um arquivo criptografado, chame OpenEncryptedFileRaw para abrir o arquivo. Em seguida, chame ReadEncryptedFileRaw, passando-lhe o endereço de uma função de retorno de chamada de exportação definida pelo aplicativo. O sistema chama essa função de retorno de chamada várias vezes até que todo o conteúdo do arquivo tenha sido lido e feito backup. Quando o backup for concluído, chame CloseEncryptedFileRaw para liberar recursos e fechar o arquivo. Consulte ExportCallback para obter detalhes sobre como declarar a função de retorno de chamada de exportação.

Para restaurar um arquivo criptografado, chame OpenEncryptedFileRaw, especificando CREATE_FOR_IMPORT no parâmetro ulFlags . Em seguida, chame WriteEncryptedFileRaw, passando-lhe o endereço de uma função de retorno de chamada de importação definida pelo aplicativo. O sistema chama essa função de retorno de chamada várias vezes até que todo o conteúdo do arquivo tenha sido lido e restaurado. Quando a restauração for concluída, chame CloseEncryptedFileRaw para liberar recursos e fechar o arquivo. Consulte ImportCallback para obter detalhes sobre como declarar a função de retorno de chamada de exportação.

Se o arquivo for um arquivo esparso que foi copiado em backup de um volume com um tamanho de unidade de alocação esparso menor do que o volume para o qual está sendo restaurado, os blocos esparsos no meio do arquivo poderão não se alinhar corretamente com os blocos maiores e a chamada de função falhará e definirá um ERROR_INVALID_PARAMETER último código de erro. O tamanho da unidade de alocação esparsa é de 16 clusters ou 64 KB, o que for menor.

Essa função destina-se à restauração apenas de arquivos criptografados; consulte BackupWrite para restaurar arquivos não criptografados.

No Windows 8, Windows Server 2012 e posteriores, essa função é compatível com as tecnologias a seguir.

Tecnologia Com suporte
Protocolo SMB (SMB) 3.0 Sim
TFO (Failover transparente) do SMB 3.0 Não
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) Não
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) Não
ReFS (Sistema de Arquivos Resiliente) Não
 

O SMB 3.0 não dá suporte ao EFS em compartilhamentos com capacidade de disponibilidade contínua.

Requisitos

   
Cliente mínimo com suporte Windows XP Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winbase.h (incluir Windows.h)
Biblioteca Advapi32.lib
DLL Advapi32.dll
Conjunto de APIs ext-ms-win-advapi32-encryptedfile-l1-1-0 (introduzido no Windows 8)

Confira também

BackupWrite

CloseEncryptedFileRaw

Criptografia de Arquivo

Funções de gerenciamento de arquivos

ImportCallback

OpenEncryptedFileRaw

ReadEncryptedFileRaw