Compartir a través de


Función EncryptFileA (winbase.h)

Cifra un archivo o directorio. Todos los flujos de datos de un archivo se cifran. Todos los archivos nuevos creados en un directorio cifrado se cifran.

Sintaxis

BOOL EncryptFileA(
  [in] LPCSTR lpFileName
);

Parámetros

[in] lpFileName

Nombre del archivo o directorio que se va a cifrar.

El autor de la llamada debe tener los derechos de acceso FILE_READ_DATA, FILE_WRITE_DATA, FILE_READ_ATTRIBUTES, FILE_WRITE_ATTRIBUTESy SYNCHRONIZE. Para obtener más información, vea derechos de acceso y seguridad de archivos.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero.

Si se produce un error en la función, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Observaciones

La función EncryptFile requiere acceso exclusivo al archivo que se está cifrando y producirá un error si otro proceso usa el archivo.

Si el archivo ya está cifrado, EncryptFile simplemente devuelve un valor distinto de cero, lo que indica que se ha realizado correctamente. Si el archivo está comprimido, EncryptFile descomprimirá el archivo antes de cifrarlo.

Si lpFileName especifica un archivo de solo lectura, la función produce un error y GetLastError devuelve ERROR_FILE_READ_ONLY. Si lpFileName especifica un directorio que contiene un archivo de solo lectura, las funciones se realizan correctamente, pero el directorio no está cifrado.

Para descifrar un archivo cifrado, use la función DecryptFile.

En Windows 8, Windows Server 2012 y versiones posteriores, esta función es compatible con las siguientes tecnologías.

Tecnología Soportado
Protocolo bloque de mensajes del servidor (SMB) 3.0
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 (ReFS) No
 

SMB 3.0 no admite EFS en recursos compartidos con capacidad de disponibilidad continua.

Nota

El encabezado winbase.h define EncryptFile como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows Server 2003 [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winbase.h (incluya Windows.h)
biblioteca de Advapi32.lib
DLL de Advapi32.dll
conjunto de API de ext-ms-win-advapi32-encryptedfile-l1-1-0 (introducido en Windows 8)

Consulte también

DecryptFile

de cifrado de archivos de

funciones de administración de archivos