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

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

Синтаксис

DWORD OpenEncryptedFileRawW(
  [in]  LPCWSTR 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 Да
Прозрачная отработка отказа (TFO) SMB 3.0 Нет
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