структура 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_EXISTS0x00000001 |
Если целевой файл существует, операция копирования немедленно завершается сбоем. Если файл или каталог существует с именем назначения, вызов функции CopyFile2 завершится ошибкой с HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS) или HRESULT_FROM_WIN32(ERROR_FILE_EXISTS) . Если также указано COPY_FILE_RESUME_FROM_PAUSE , сбой активируется только в том случае, если у целевого файла нет допустимого заголовка перезапуска. |
COPY_FILE_RESTARTABLE0x00000002 |
Файл копируется таким образом, что его можно перезапустить, если снова используются те же имена исходного и целевого файлов. Это медленнее. |
COPY_FILE_OPEN_SOURCE_FOR_WRITE0x00000004 |
Файл копируется, и исходный файл открывается для доступа на запись. |
COPY_FILE_ALLOW_DECRYPTED_DESTINATION0x00000008 |
Будет предпринята попытка копирования, даже если не удается зашифровать целевой файл. |
COPY_FILE_COPY_SYMLINK0x00000800 |
Если исходный файл является символьной ссылкой, конечный файл также является символьной ссылкой, указывающей на тот же файл, что и исходная символьная ссылка. |
COPY_FILE_NO_BUFFERING0x00001000 |
Копирование выполняется с помощью небуферизованных операций ввода-вывода, минуя ресурсы системного кэша. Этот флаг рекомендуется использовать для очень больших копий файлов. Не рекомендуется приостанавливать копии, использующие этот флаг. |
COPY_FILE_REQUEST_SECURITY_PRIVILEGES0x00002000 |
Выполняется попытка копирования, указав ACCESS_SYSTEM_SECURITY для исходного файла и ACCESS_SYSTEM_SECURITY \| WRITE_DAC \| WRITE_OWNER для целевого файла. Если эти запросы отклоняются, запрос на доступ будет сокращен до самого высокого уровня привилегий, для которого предоставляется доступ. Дополнительные сведения см. в разделе Права доступа к SACL. Это позволяет обратному вызову CopyFile2ProgressRoutine выполнять операции, требующие более высоких привилегий, например копирование атрибутов безопасности для файла. |
COPY_FILE_RESUME_FROM_PAUSE0x00004000 |
Целевой файл проверяется, был ли он скопирован с помощью COPY_FILE_RESTARTABLE. Если это так, копирование возобновляется. В противном случае файл будет полностью скопирован. |
COPY_FILE_NO_OFFLOAD0x00040000 |
Не пытайтесь использовать механизм разгрузки копирования Windows. Обычно это не рекомендуется. |
COPY_FILE_IGNORE_EDP_BLOCK0x00400000 |
Вместо блокировки файл следует скопировать и зашифровать в месте назначения, если он поддерживается файловой системой назначения. Поддерживается в Windows 10 и более поздних версиях. |
COPY_FILE_IGNORE_SOURCE_ENCRYPTION0x00800000 |
Игнорировать зашифрованное состояние исходного файла. Поддерживается в Windows 10 и более поздних версиях. |
COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC0x02000000 |
Не запрашивайте WRITE_DAC для доступа к конечному файлу. Поддерживается в Windows 10 и более поздних версиях. |
COPY_FILE_OPEN_AND_COPY_REPARSE_POINT0x00200000 |
Всегда копируйте точку повторного преобразования независимо от типа. Ответственность за понимание значения точки повторного анализа лежит на вызывающем объекте. Поддерживается в Windows 10 сборке 19041 и более поздних версий. |
COPY_FILE_DIRECTORY0x00000080 |
Указывает, что исходный файл является файлом каталога. При указании исходный файл открывается с FILE_OPEN_FOR_BACKUP_INTENT помощью . Файл каталога будет иметь альтернативные потоки данных, сведения о точках повторного анализа и EA, скопированные как обычный файл. Поддерживается в Windows 10 сборки 19041 и более поздних версий. |
COPY_FILE_SKIP_ALTERNATE_STREAMS0x00008000 |
Не копируйте альтернативные потоки данных. Поддерживается в Windows 10 сборки 19041 и более поздних версий. |
COPY_FILE_DISABLE_PRE_ALLOCATION0x04000000 |
Не выделяйте заранее целевой размер файла перед выполнением копирования. Поддерживается в Windows 10 сборки 19041 и более поздних версий. |
COPY_FILE_ENABLE_LOW_FREE_SPACE_MODE0x08000000 |
Включите режим LowFreeSpace. Перекрывающиеся ввода-вывода не используются. Попытка разгрузки ODX и SMB не выполняется. Поддерживается в Windows 10 сборки 19041 и более поздних версий. |
COPY_FILE_REQUEST_COMPRESSED_TRAFFIC0x10000000 |
Запросите сжатие данных в базовом канале передачи во время операции копирования. Запрос может поддерживаться не для всех носителей, и в этом случае он игнорируется. Атрибуты и параметры сжатия (сложность вычислений, использование памяти) не настраиваются с помощью этого API и могут изменяться в разных выпусках ОС. Поддерживается в Windows Server 2022 и Windows 10 сборки 1903 и более поздних версий. (На Windows 10 флаг поддерживается для файлов, размещенных в общих папках SMB, где согласованная версия протокола SMB — SMB версии 3.1.1 или более поздней.) |
COPY_FILE_ENABLE_SPARSE_COPY0x20000000 |
Включите сохранение разреженного состояния файла во время копирования. Поддерживается в 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) |