структура 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_EXISTS0x00000001 |
Если целевой файл существует, операция копирования завершается сбоем немедленно. Если файл или каталог существует с именем назначения, вызов функции copyFile2 CopyFile 2 завершится ошибкой 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 . Файл каталога будет иметь свои альтернативные потоки данных, сведения о точке повторного анализа и EAs, скопированные как обычный файл.
Поддерживаемые в 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 10 версии 1903 и Windows Server 2022. В Windows 10 флаг поддерживается для файлов, размещенных в общих папках SMB, где согласованная версия протокола SMB — SMB версии 3.1.1 или более поздней. |
COPY_FILE_ENABLE_SPARSE_COPY0x20000000 |
Включите сохранение разреженного состояния файла во время копирования. поддерживается в Windows 11, сборка 22H2 и более поздние версии. |
pfCancel
Если для этого флага задано значение TRUE во время операции копирования, операция копирования отменяется.
pProgressRoutine
Необязательный адрес функции обратного вызова типа PCOPYFILE2_PROGRESS_ROUTINE, вызываемой при каждом копировании другой части файла. Этот параметр может быть NULL. Дополнительные сведения о функции обратного вызова хода выполнения см. в функции обратного вызова CopyFile2ProgresSRoutine. Если предоставляются оба pProgressRoutineOld и pProgressRoutine, pProgressRoutineOld имеет приоритет.
pvCallbackContext
Указатель на сведения о контексте для конкретного приложения, передаваемые в CopyFile2ProgressRoutine.
dwCopyFlagsV2
Содержит сочетание нулевых или более этих значений флага.
Ценность | Значение |
---|---|
COPY_FILE2_V2_DONT_COPY_JUNCTIONS0x00000001 |
Отключение соединений копирования. |
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) |