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


Функция 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 (TFO) Нет
SMB 3.0 с масштабируемыми общими папками (SO) Нет
Файловая система общего тома кластера (CSVFS) Нет
Отказоустойчивая файловая система (ReFS) Нет
 

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

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP Professional [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка 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