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

Содержит обновленные дополнительные функциональные возможности за пределами структуры COPYFILE2_EXTENDED_PARAMETERS для функции CopyFile2 .

Синтаксис

typedef struct COPYFILE2_EXTENDED_PARAMETERS_V2 {
  DWORD                         dwSize;
  DWORD                         dwCopyFlags;
  BOOL                          *pfCancel;
  PCOPYFILE2_PROGRESS_ROUTINE   pProgressRoutine;
  PVOID                         pvCallbackContext;
  DWORD                         dwCopyFlagsV2;
  ULONG                         ioDesiredSize;
  ULONG                         ioDesiredRate;
  LPPROGRESS_ROUTINE            pProgressRoutineOld;
  PCOPYFILE2_CREATE_OPLOCK_KEYS SourceOplockKeys;
#if ...
  PVOID                         reserved[6];
#elif
  PVOID                         reserved[7];
#else
  PVOID                         reserved[8];
#endif
} COPYFILE2_EXTENDED_PARAMETERS_V2;

Члены

dwSize

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

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 10 версии 1903 и Windows Server 2022. На 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 . Если указаны оба параметра pProgressRoutineOld и pProgressRoutine , приоритет имеет pProgressRoutineOld .

pvCallbackContext

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

dwCopyFlagsV2

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

Значение Значение
COPY_FILE2_V2_DONT_COPY_JUNCTIONS
0x00000001
Отключение копирования соединений.

ioDesiredSize

Необязательный элемент. Запрошенный размер (в байтах) для каждой операции ввода-вывода (т. е. один цикл чтения и записи при копировании файла). Это может быть уменьшено, если недостаточно памяти. Если значение равно нулю, используется размер по умолчанию. Это может быть проигнорировано, если ioDesiredRate также предоставляется

ioDesiredRate

Необязательный элемент. Запрошенная средняя скорость ввода-вывода в килобайтах в секунду. Если значение равно нулю, копирование выполняется как можно быстрее.

pProgressRoutineOld

SourceOplockKeys

reserved[6]

reserved[7]

reserved[8]

pProgressRoutineOld. Необязательный элемент. Адрес функции обратного вызова старого стиля типа LPPROGRESS_ROUTINE , которая вызывается при каждом копировании другой части файла. Этот параметр может принимать значение NULL. Дополнительные сведения о функции обратного вызова хода выполнения см. в разделе LPPROGRESS_ROUTINE обратного вызова. Если указаны оба параметра pProgressRoutineOld и pProgressRoutine , приоритет имеет pProgressRoutineOld .

Комментарии

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

Требования

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

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

CopyFile2

COPYFILE2_EXTENDED_PARAMETERS

CopyFile2ProgressRoutine

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

LPPROGRESS_ROUTINE

Использование заголовков Windows