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


структура COPYFILE2_EXTENDED_PARAMETERS (winbase.h)

Содержит расширенные параметры для функции CopyFile2 .

Синтаксис

typedef struct COPYFILE2_EXTENDED_PARAMETERS {
  DWORD                       dwSize;
  DWORD                       dwCopyFlags;
  BOOL                        *pfCancel;
  PCOPYFILE2_PROGRESS_ROUTINE pProgressRoutine;
  PVOID                       pvCallbackContext;
} COPYFILE2_EXTENDED_PARAMETERS;

Члены

dwSize

Содержит размер этой структуры , sizeof(COPYFILE2_EXTENDED_PARAMETERS).

dwCopyFlags

Содержит ноль или несколько значений этих флагов.

Значение Значение
COPY_FILE_FAIL_IF_EXISTS
0x00000001
Если целевой файл существует, операция копирования немедленно завершается сбоем. Если файл или каталог существует с именем назначения, вызов функции CopyFile2 завершится ошибкой с HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS) или HRESULT_FROM_WIN32(ERROR_FILE_EXISTS). Если также указано COPY_FILE_RESUME_FROM_PAUSE , сбой активируется только в том случае, если у целевого файла нет допустимого заголовка перезапуска.
COPY_FILE_RESTARTABLE
0x00000002
Файл копируется таким образом, что его можно перезапустить, если снова используются те же имена исходного и целевого файлов. Это медленнее.
COPY_FILE_OPEN_SOURCE_FOR_WRITE
0x00000004
Файл копируется, и исходный файл открывается для доступа на запись.
COPY_FILE_ALLOW_DECRYPTED_DESTINATION
0x00000008
Будет предпринята попытка копирования, даже если не удается зашифровать целевой файл.
COPY_FILE_COPY_SYMLINK
0x00000800
Если исходный файл является символьной ссылкой, конечный файл также является символьной ссылкой, указывающей на тот же файл, что и исходная символьная ссылка.
COPY_FILE_NO_BUFFERING
0x00001000
Копирование выполняется с помощью небуферизованных операций ввода-вывода, минуя ресурсы системного кэша. Этот флаг рекомендуется использовать для очень больших копий файлов. Не рекомендуется приостанавливать копии, использующие этот флаг.
COPY_FILE_REQUEST_SECURITY_PRIVILEGES
0x00002000
Выполняется попытка копирования, указав ACCESS_SYSTEM_SECURITY для исходного файла и ACCESS_SYSTEM_SECURITY \| WRITE_DAC \| WRITE_OWNER для целевого файла. Если эти запросы отклоняются, запрос на доступ будет сокращен до самого высокого уровня привилегий, для которого предоставляется доступ. Дополнительные сведения см. в разделе Права доступа к SACL. Это позволяет обратному вызову CopyFile2ProgressRoutine выполнять операции, требующие более высоких привилегий, например копирование атрибутов безопасности для файла.
COPY_FILE_RESUME_FROM_PAUSE
0x00004000
Целевой файл проверяется, был ли он скопирован с помощью COPY_FILE_RESTARTABLE. Если это так, копирование возобновляется. В противном случае файл будет полностью скопирован.
COPY_FILE_NO_OFFLOAD
0x00040000
Не пытайтесь использовать механизм разгрузки копирования Windows. Обычно это не рекомендуется.
COPY_FILE_IGNORE_EDP_BLOCK
0x00400000
Вместо блокировки файл следует скопировать и зашифровать в месте назначения, если он поддерживается файловой системой назначения. Поддерживается в Windows 10 и более поздних версиях.
COPY_FILE_IGNORE_SOURCE_ENCRYPTION
0x00800000
Игнорировать зашифрованное состояние исходного файла. Поддерживается в Windows 10 и более поздних версиях.
COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC
0x02000000
Не запрашивайте WRITE_DAC для доступа к конечному файлу. Поддерживается в Windows 10 и более поздних версиях.
COPY_FILE_OPEN_AND_COPY_REPARSE_POINT
0x00200000
Всегда копируйте точку повторного преобразования независимо от типа. Ответственность за понимание значения точки повторного анализа лежит на вызывающем объекте. Поддерживается в Windows 10 сборке 19041 и более поздних версий.
COPY_FILE_DIRECTORY
0x00000080
Указывает, что исходный файл является файлом каталога. При указании исходный файл открывается с FILE_OPEN_FOR_BACKUP_INTENTпомощью . Файл каталога будет иметь альтернативные потоки данных, сведения о точках повторного анализа и EA, скопированные как обычный файл. Поддерживается в Windows 10 сборки 19041 и более поздних версий.
COPY_FILE_SKIP_ALTERNATE_STREAMS
0x00008000
Не копируйте альтернативные потоки данных. Поддерживается в Windows 10 сборки 19041 и более поздних версий.
COPY_FILE_DISABLE_PRE_ALLOCATION
0x04000000
Не выделяйте заранее целевой размер файла перед выполнением копирования. Поддерживается в Windows 10 сборки 19041 и более поздних версий.
COPY_FILE_ENABLE_LOW_FREE_SPACE_MODE
0x08000000
Включите режим LowFreeSpace. Перекрывающиеся ввода-вывода не используются. Попытка разгрузки ODX и SMB не выполняется. Поддерживается в Windows 10 сборки 19041 и более поздних версий.
COPY_FILE_REQUEST_COMPRESSED_TRAFFIC
0x10000000
Запросите сжатие данных в базовом канале передачи во время операции копирования. Запрос может поддерживаться не для всех носителей, и в этом случае он игнорируется. Атрибуты и параметры сжатия (сложность вычислений, использование памяти) не настраиваются с помощью этого API и могут изменяться в разных выпусках ОС. Поддерживается в Windows Server 2022 и Windows 10 сборки 1903 и более поздних версий. (На Windows 10 флаг поддерживается для файлов, размещенных в общих папках SMB, где согласованная версия протокола SMB — SMB версии 3.1.1 или более поздней.)
COPY_FILE_ENABLE_SPARSE_COPY
0x20000000
Включите сохранение разреженного состояния файла во время копирования. Поддерживается в Windows 11, сборке 22H2 и более поздних версиях.

pfCancel

Если во время операции копирования для этого флага задано значение TRUE , операция копирования отменяется.

pProgressRoutine

Необязательный адрес функции обратного вызова типа PCOPYFILE2_PROGRESS_ROUTINE , который вызывается при каждом копировании другой части файла. Этот параметр может принимать значение NULL. Дополнительные сведения о функции обратного вызова хода выполнения см. в разделе Функция обратного вызова CopyFile2ProgressRoutine .

pvCallbackContext

Указатель на сведения о контексте конкретного приложения, передаваемые в CopyFile2ProgressRoutine.

Комментарии

Чтобы скомпилировать приложение, использующее эту структуру, определите макрос _WIN32_WINNTкак _WIN32_WINNT_WIN8 или более поздней версии. Дополнительные сведения см. в разделе Использование заголовков Windows.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 [классические приложения | Приложения UWP]
Верхняя часть winbase.h (включая Windows.h)

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

CopyFile2

CopyFile2ProgressRoutine

Структуры управления файлами

COPYFILE2_EXTENDED_PARAMETERS_V2