다음을 통해 공유


COPYFILE2_EXTENDED_PARAMETERS_V2 구조체(winbase.h)

CopyFile2 함수에 대한 COPYFILE2_EXTENDED_PARAMETERS 구조 이외의 업데이트된 추가 기능을 포함합니다.

구문

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

이러한 플래그 값의 조합이 0개 이상 포함되어 있습니다.

의미
COPY_FILE_FAIL_IF_EXISTS
0x00000001
대상 파일이 있는 경우 복사 작업이 즉시 실패합니다. 대상 이름을 가진 파일 또는 디렉터리가 있는 경우 또는 HRESULT_FROM_WIN32(ERROR_FILE_EXISTS)CopyFile2 함수 호출이 HRESULT_FROM_WIN32(ERROR_ALREADY_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
복사본은 버퍼링되지 않은 I/O를 사용하여 수행되며 시스템 캐시 리소스를 무시합니다. 이 플래그는 매우 큰 파일 복사본에 권장됩니다. 이 플래그를 사용하는 복사본은 일시 중지하지 않는 것이 좋습니다.
COPY_FILE_REQUEST_SECURITY_PRIVILEGES
0x00002000
원본 파일 및 ACCESS_SYSTEM_SECURITY \| WRITE_DAC \| WRITE_OWNER 대상 파일에 대해 를 지정하여 ACCESS_SYSTEM_SECURITY 복사본을 시도합니다. 이러한 요청이 거부되면 액세스 요청이 액세스 권한이 부여되는 가장 높은 권한 수준으로 감소됩니다. 자세한 내용은 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 모드를 사용하도록 설정합니다. 겹치는 I/O는 사용되지 않습니다. ODX 및 SMB 오프로드는 시도되지 않습니다. Windows 10 빌드 19041 이상에서 지원됩니다.
COPY_FILE_REQUEST_COMPRESSED_TRAFFIC
0x10000000
복사 작업 중에 기본 전송 채널이 데이터를 압축할 것을 요청합니다. 요청은 모든 매체에 대해 지원되지 않을 수 있으며, 이 경우 무시됩니다. 압축 특성 및 매개 변수(계산 복잡성, 메모리 사용량)는 이 API를 통해 구성할 수 없으며 다른 OS 릴리스 간에 변경될 수 있습니다.

이 플래그는 Windows 10 버전 1903 및 Windows Server 2022에서 도입되었습니다. Windows 10 협상된 SMB 프로토콜 버전이 SMB v3.1.1 이상인 SMB 공유에 있는 파일에 대해 플래그가 지원됩니다.
COPY_FILE_ENABLE_SPARSE_COPY
0x20000000
복사하는 동안 파일의 스파스 상태를 유지하도록 설정합니다. Windows 11 빌드 22H2 이상에서 지원됩니다.

pfCancel

복사 작업 중에 이 플래그를 TRUE 로 설정하면 복사 작업이 취소됩니다.

pProgressRoutine

파일의 다른 부분을 복사할 때마다 호출되는 형식 PCOPYFILE2_PROGRESS_ROUTINE 콜백 함수의 선택적 주소입니다. 이 매개 변수는 NULL일 수 있습니다. 진행률 콜백 함수에 대한 자세한 내용은 CopyFile2ProgressRoutine 콜백 함수를 참조하세요. pProgressRoutineOldpProgressRoutine이 모두 제공되면 pProgressRoutineOld가 우선합니다.

pvCallbackContext

CopyFile2ProgressRoutine에 전달할 애플리케이션별 컨텍스트 정보에 대한 포인터입니다.

dwCopyFlagsV2

이러한 플래그 값의 조합이 0개 이상 포함되어 있습니다.

의미
COPY_FILE2_V2_DONT_COPY_JUNCTIONS
0x00000001
접합 복사를 사용하지 않도록 설정합니다.

ioDesiredSize

선택 사항입니다. 각 I/O 작업에 대해 요청된 크기(바이트)입니다(즉, 파일을 복사하는 동안 하나의 읽기/쓰기 주기). 메모리가 부족하면 이 값이 줄어들 수 있습니다. 0이면 기본 크기가 사용됩니다. ioDesiredRate도 제공된 경우 무시될 수 있습니다.

ioDesiredRate

선택 사항입니다. 요청된 평균 I/O 속도(초당 킬로바이트)입니다. 0이면 복사본이 가능한 한 빨리 수행됩니다.

pProgressRoutineOld

SourceOplockKeys

reserved[6]

reserved[7]

reserved[8]

pProgressRoutineOld. 선택 사항입니다. 파일의 다른 부분을 복사할 때마다 호출되는 LPPROGRESS_ROUTINE 형식의 이전 스타일 콜백 함수의 주소입니다. 이 매개 변수는 NULL일 수 있습니다. 자세한 내용은 진행률 콜백 함수에 대한 LPPROGRESS_ROUTINE 콜백을 참조하세요. pProgressRoutineOldpProgressRoutine이 모두 제공되면 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 헤더 사용