Поделиться через


Функция OpenEncryptedFileRawA (winbase.h)

Открывает зашифрованный файл для резервного копирования (экспорта) или восстановления (импорта) файла. Это одна из групп функций зашифрованной файловой системы (EFS), которая предназначена для реализации функций резервного копирования и восстановления, сохраняя при этом файлы в зашифрованном состоянии.

Синтаксис

DWORD OpenEncryptedFileRawA(
  [in]  LPCSTR lpFileName,
  [in]  ULONG  ulFlags,
  [out] PVOID  *pvContext
);

Параметры

[in] lpFileName

Имя открываемого файла. Строка должна состоять из символов из кодировки Windows.

[in] ulFlags

Операция, которая выполняется. Этот параметр может иметь одно из следующих значений.

Значение Значение
0
Откройте файл для экспорта (резервной копии).
CREATE_FOR_IMPORT
1
Файл открывается для импорта (восстановления).
CREATE_FOR_DIR
2
Импорт (восстановление) каталога, содержащего зашифрованные файлы. Этот параметр должен быть объединён с одним из двух предыдущих флагов, чтобы указать операцию.
OVERWRITE_HIDDEN
4
Перезаписать скрытый файл при импорте.

[out] pvContext

Адрес блока контекста, который должен быть представлен в последующих вызовах ReadEncryptedFileRaw, WriteEncryptedFileRaw или CloseEncryptedFileRaw. Не изменяйте ее.

Возвращаемое значение

Если функция завершается успешно, она возвращает ERROR_SUCCESS.

Если функция завершается сбоем, она возвращает ненулевой код ошибки, определенный в WinError.h. Вы можете использовать FormatMessage с флагом FORMAT_MESSAGE_FROM_SYSTEM , чтобы получить общее текстовое описание ошибки.

Комментарии

Для успешного выполнения вызова вызывающий объект должен иметь доступ на чтение или запись к файлу или иметь право на резервное копирование SeBackupPrivilege на компьютере, на котором находятся файлы.

Чтобы создать резервную копию зашифрованного файла, вызовите OpenEncryptedFileRaw , чтобы открыть файл, а затем вызовите ReadEncryptedFileRaw. После завершения резервного копирования вызовите CloseEncryptedFileRaw.

Чтобы восстановить зашифрованный файл, вызовите OpenEncryptedFileRaw, указав CREATE_FOR_IMPORT в параметре ulFlags , а затем вызовите WriteEncryptedFileRaw один раз. После завершения операции вызовите CloseEncryptedFileRaw.

OpenEncryptedFileRaw завершается ошибкой , если значение lpFileName превышает MAX_PATH символов при открытии зашифрованного файла на удаленном компьютере.

Если вызывающий объект не имеет доступа к ключу для файла, ему требуется SeBackupPrivilege для экспорта зашифрованных файлов или SeRestorePrivilege для импорта зашифрованных файлов.

Функции BackupRead и BackupWrite обрабатывают резервное копирование и восстановление незашифрованных файлов.

В Windows 8 Windows Server 2012 и более поздних версиях эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
SMB 3.0 Transparent Failover (TFO) Нет
SMB 3.0 с масштабируемыми общими папками (SO) Нет
Файловая система общего тома кластера (CSVFS) Нет
Восстанавливаемая файловая система (ReFS) Нет
 

SMB 3.0 не поддерживает EFS в общих папках с возможностью непрерывной доступности.

Примечание

Заголовок winbase.h определяет OpenEncryptedFileRaw в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP Professional [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll
Набор API ext-ms-win-advapi32-encryptedfile-l1-1-0 (появился в Windows 8)

См. также раздел

BackupRead

BackupWrite

CloseEncryptedFileRaw

Шифрование файлов

Функции управления файлами

ReadEncryptedFileRaw

WriteEncryptedFileRaw