Función WriteEncryptedFileRaw (winbase.h)
Restaura (importa) archivos cifrados. Se trata de un grupo de funciones del Sistema de archivos cifrados (EFS) que está pensada para implementar la funcionalidad de copia de seguridad y restauración, a la vez que mantiene los archivos en su estado cifrado.
Sintaxis
DWORD WriteEncryptedFileRaw(
[in] PFE_IMPORT_FUNC pfImportCallback,
[in, optional] PVOID pvCallbackContext,
[in] PVOID pvContext
);
Parámetros
[in] pfImportCallback
Puntero a la función de devolución de llamada de importación. El sistema llama a la función de devolución de llamada varias veces, cada vez que pasa un búfer que se rellenará mediante la función de devolución de llamada con una parte de los datos del archivo de copia de seguridad. Cuando la función de devolución de llamada indica que se ha procesado todo el archivo, indica al sistema que finaliza la operación de restauración. Para obtener más información, consulte ImportCallback.
[in, optional] pvCallbackContext
Puntero a un bloque de contexto definido por la aplicación y asignado. El sistema pasa este puntero a la función de devolución de llamada como parámetro para que la función de devolución de llamada pueda tener acceso a datos específicos de la aplicación. Puede ser una estructura y puede contener los datos que necesite la aplicación, como el identificador del archivo que contendrá la copia de seguridad del archivo cifrado.
[in] pvContext
Puntero a un bloque de contexto definido por el sistema. La función OpenEncryptedFileRaw devuelve el bloque de contexto. No la modifique.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.
Si se produce un error en la función, devuelve un código de error distinto de cero definido en WinError.h. Puede usar FormatMessage con la marca FORMAT_MESSAGE_FROM_SYSTEM para obtener una descripción de texto genérica del error.
Comentarios
El archivo que se está restaurando no se descifra; se restaura en su estado cifrado.
Para realizar una copia de seguridad de un archivo cifrado, llame a OpenEncryptedFileRaw para abrir el archivo. A continuación, llame a ReadEncryptedFileRaw y pase la dirección de una función de devolución de llamada de exportación definida por la aplicación. El sistema llama a esta función de devolución de llamada varias veces hasta que se haya leído y realizado una copia de seguridad del contenido completo del archivo. Una vez completada la copia de seguridad, llame a CloseEncryptedFileRaw para liberar recursos y cerrar el archivo. Consulte ExportCallback para obtener más información sobre cómo declarar la función de devolución de llamada de exportación.
Para restaurar un archivo cifrado, llame a OpenEncryptedFileRaw y especifique CREATE_FOR_IMPORT en el parámetro ulFlags . A continuación, llame a WriteEncryptedFileRaw y pase la dirección de una función de devolución de llamada de importación definida por la aplicación. El sistema llama a esta función de devolución de llamada varias veces hasta que se haya leído y restaurado todo el contenido del archivo. Una vez completada la restauración, llame a CloseEncryptedFileRaw para liberar recursos y cerrar el archivo. Consulte ImportCallback para obtener más información sobre cómo declarar la función de devolución de llamada de exportación.
Si el archivo es un archivo disperso al que se hizo una copia de seguridad desde un volumen con un tamaño de unidad de asignación dispersa más pequeño que el volumen al que se va a restaurar, es posible que los bloques dispersos en medio del archivo no se alineen correctamente con los bloques más grandes y se producirá un error en la llamada a la función y se establecerá un código de error ERROR_INVALID_PARAMETER último. El tamaño de unidad de asignación dispersa es de 16 clústeres o 64 KB, lo que sea menor.
Esta función está pensada para restaurar solo archivos cifrados; consulte BackupWrite para restaurar archivos sin cifrar.
En Windows 8, Windows Server 2012 y versiones posteriores, esta función es compatible con las siguientes tecnologías.
Tecnología | Compatible |
---|---|
Protocolo Bloque de mensajes del servidor (SMB) 3.0 | Sí |
Conmutación por error transparente (TFO) de SMB 3.0 | No |
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) | No |
Sistema de archivos de Volumen compartido de clúster (CsvFS) | No |
Sistema de archivos resistente a errores (ReFS) | No |
SMB 3.0 no admite EFS en recursos compartidos con capacidad de disponibilidad continua.
Requisitos
Cliente mínimo compatible | Windows XP Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winbase.h (incluya Windows.h) |
Library | Advapi32.lib |
Archivo DLL | Advapi32.dll |
Conjunto de API | ext-ms-win-advapi32-encryptedfile-l1-1-0 (introducido en Windows 8) |