다음을 통해 공유


COPYFILE2_MESSAGE 구조체(winbase.h)

보류 중인 복사 작업에 대한 정보와 함께 CopyFile2ProgressRoutine 콜백 함수에 전달됩니다.

구문

typedef struct COPYFILE2_MESSAGE {
  COPYFILE2_MESSAGE_TYPE Type;
  DWORD                  dwPadding;
  union {
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwReserved;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliChunkNumber;
      ULARGE_INTEGER uliChunkSize;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliTotalFileSize;
    } ChunkStarted;
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwFlags;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliChunkNumber;
      ULARGE_INTEGER uliChunkSize;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliStreamBytesTransferred;
      ULARGE_INTEGER uliTotalFileSize;
      ULARGE_INTEGER uliTotalBytesTransferred;
    } ChunkFinished;
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwReserved;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliTotalFileSize;
    } StreamStarted;
    struct {
      DWORD          dwStreamNumber;
      DWORD          dwReserved;
      HANDLE         hSourceFile;
      HANDLE         hDestinationFile;
      ULARGE_INTEGER uliStreamSize;
      ULARGE_INTEGER uliStreamBytesTransferred;
      ULARGE_INTEGER uliTotalFileSize;
      ULARGE_INTEGER uliTotalBytesTransferred;
    } StreamFinished;
    struct {
      DWORD dwReserved;
    } PollContinue;
    struct {
      COPYFILE2_COPY_PHASE CopyPhase;
      DWORD                dwStreamNumber;
      HRESULT              hrFailure;
      DWORD                dwReserved;
      ULARGE_INTEGER       uliChunkNumber;
      ULARGE_INTEGER       uliStreamSize;
      ULARGE_INTEGER       uliStreamBytesTransferred;
      ULARGE_INTEGER       uliTotalFileSize;
      ULARGE_INTEGER       uliTotalBytesTransferred;
    } Error;
  } Info;
} COPYFILE2_MESSAGE;

멤버

Type

이 구조체 내의 정보 공용 구조체에 대한 비범죄로 사용되는 COPYFILE2_MESSAGE_TYPE 열거형의 값입니다.

의미
COPYFILE2_CALLBACK_CHUNK_STARTED
1
스트림의 단일 청크가 복사되기 시작했음을 나타냅니다. 정보는 정보 공용 구조체 내의 ChunkStarted 구조에 있습니다.
COPYFILE2_CALLBACK_CHUNK_FINISHED
2
스트림의 단일 청크 복사본이 완료되었음을 나타냅니다. 정보는 정보 공용 구조체 내의 ChunkFinished 구조에 있습니다.
COPYFILE2_CALLBACK_STREAM_STARTED
3
스트림에 대한 원본 및 대상 핸들이 모두 열려 있고 스트림의 복사본이 시작되려고 했음을 나타냅니다. 정보는 정보 공용 구조체 내의 StreamStarted 구조에 있습니다. 이는 해당 스트림에 대한 복사본이 시작되었음을 나타내지 않습니다.
COPYFILE2_CALLBACK_STREAM_FINISHED
4
CopyFile2ProgressRoutineCOPYFILE2_PROGRESS_STOP 반환으로 인해 스트림의 복사 작업이 성공적으로 완료되기 시작했음을 나타냅니다. 정보는 정보 공용 구조체 내의 StreamFinished 구조에 있습니다.
COPYFILE2_CALLBACK_POLL_CONTINUE
5
주기적으로 전송될 수 있습니다. 정보는 정보 공용 구조체 내의 PollContinue 구조에 있습니다.
COPYFILE2_CALLBACK_ERROR
6
복사 작업 중에 오류가 발생했습니다. 정보는 정보 공용 구조체 내의 오류 구조에 있습니다.

dwPadding

Info

Info.ChunkStarted

Type 멤버가 COPYFILE2_CALLBACK_CHUNK_STARTED(1)로 설정된 경우 이 구조체가 선택됩니다.

Info.ChunkStarted.dwStreamNumber

복사할 파일 내의 스트림을 나타냅니다. 파일 내에서 스트림을 식별하는 데 사용되는 값은 1에서 시작되며 항상 해당 파일의 이전 스트림보다 높습니다.

Info.ChunkStarted.dwReserved

이 멤버는 내부용으로 예약되어 있습니다.

Info.ChunkStarted.hSourceFile

원본 스트림에 대한 핸들입니다.

Info.ChunkStarted.hDestinationFile

대상 스트림에 대한 핸들입니다.

Info.ChunkStarted.uliChunkNumber

현재 스트림 내에서 복사할 청크를 나타냅니다. 청크에 사용되는 값은 0에서 시작하며 항상 현재 스트림에 대한 이전 청크보다 높습니다.

Info.ChunkStarted.uliChunkSize

복사한 청크의 크기(바이트)입니다.

Info.ChunkStarted.uliStreamSize

현재 스트림의 크기(바이트)입니다.

Info.ChunkStarted.uliTotalFileSize

이 파일에 대한 모든 스트림의 크기(바이트)입니다.

Info.ChunkFinished

Type 멤버가 COPYFILE2_CALLBACK_CHUNK_FINISHED(2)로 설정된 경우 이 구조체가 선택됩니다.

ChunkFinished.dwReserved

이 멤버는 내부용으로 예약되어 있습니다.

Info.ChunkFinished.dwStreamNumber

복사할 파일 내의 스트림을 나타냅니다. 파일 내에서 스트림을 식별하는 데 사용되는 값은 1에서 시작되며 항상 해당 파일의 이전 스트림보다 높습니다.

Info.ChunkFinished.dwFlags

Info.ChunkFinished.hSourceFile

원본 스트림에 대한 핸들입니다.

Info.ChunkFinished.hDestinationFile

대상 스트림에 대한 핸들입니다.

Info.ChunkFinished.uliChunkNumber

현재 스트림 내에서 처리 중인 청크를 나타냅니다. 청크에 사용되는 값은 0에서 시작하며 항상 현재 스트림에 대한 이전 청크보다 높습니다.

Info.ChunkFinished.uliChunkSize

복사한 청크의 크기(바이트)입니다.

Info.ChunkFinished.uliStreamSize

현재 스트림의 크기(바이트)입니다.

Info.ChunkFinished.uliStreamBytesTransferred

지금까지 이 스트림에 대해 복사된 총 바이트 수입니다.

Info.ChunkFinished.uliTotalFileSize

이 파일에 대한 모든 스트림의 크기(바이트)입니다.

Info.ChunkFinished.uliTotalBytesTransferred

지금까지 이 파일에 대해 복사한 총 바이트 수입니다.

Info.StreamStarted

Type 멤버가 COPYFILE2_CALLBACK_STREAM_STARTED(3)으로 설정된 경우 이 구조체가 선택됩니다.

Info.StreamStarted.dwStreamNumber

복사할 파일 내의 스트림을 나타냅니다. 파일 내에서 스트림을 식별하는 데 사용되는 값은 1에서 시작되며 항상 해당 파일의 이전 스트림보다 높습니다.

Info.StreamStarted.dwReserved

이 멤버는 내부용으로 예약되어 있습니다.

Info.StreamStarted.hSourceFile

원본 스트림에 대한 핸들입니다.

Info.StreamStarted.hDestinationFile

대상 스트림에 대한 핸들입니다.

Info.StreamStarted.uliStreamSize

현재 스트림의 크기(바이트)입니다.

Info.StreamStarted.uliTotalFileSize

이 파일에 대한 모든 스트림의 크기(바이트)입니다.

Info.StreamFinished

Type 멤버가 COPYFILE2_CALLBACK_STREAM_FINISHED(4)로 설정된 경우 이 구조체가 선택됩니다.

Info.StreamFinished.dwStreamNumber

복사할 파일 내의 스트림을 나타냅니다. 파일 내에서 스트림을 식별하는 데 사용되는 값은 1에서 시작되며 항상 해당 파일의 이전 스트림보다 높습니다.

Info.StreamFinished.dwReserved

이 멤버는 내부용으로 예약되어 있습니다.

Info.StreamFinished.hSourceFile

원본 스트림에 대한 핸들입니다.

Info.StreamFinished.hDestinationFile

대상 스트림에 대한 핸들입니다.

Info.StreamFinished.uliStreamSize

현재 스트림의 크기(바이트)입니다.

Info.StreamFinished.uliStreamBytesTransferred

지금까지 이 스트림에 대해 복사된 총 바이트 수입니다.

Info.StreamFinished.uliTotalFileSize

이 파일에 대한 모든 스트림의 크기(바이트)입니다.

Info.StreamFinished.uliTotalBytesTransferred

지금까지 이 파일에 대해 복사한 총 바이트 수입니다.

Info.PollContinue

Type 멤버가 COPYFILE2_CALLBACK_POLL_CONTNUE(5)로 설정된 경우 이 구조체가 선택됩니다.

Info.PollContinue.dwReserved

이 멤버는 내부용으로 예약되어 있습니다.

Info.Error

Type 멤버가 COPYFILE2_CALLBACK_ERROR(6)으로 설정된 경우 이 구조체가 선택됩니다.

Info.Error.CopyPhase

오류 발생 시 복사본의 현재 단계를 나타내는 COPYFILE2_COPY_PHASE 열거형의 값입니다.

Info.Error.dwStreamNumber

오류 발생 시 처리된 스트림의 수입니다.

Info.Error.hrFailure

문제를 나타내는 값입니다.

Info.Error.dwReserved

이 멤버는 내부용으로 예약되어 있습니다.

Info.Error.uliChunkNumber

오류 발생 시 현재 스트림 내에서 처리되고 있는 청크를 나타냅니다. 청크에 사용되는 값은 0에서 시작하며 항상 현재 스트림에 대한 이전 청크보다 높습니다.

Info.Error.uliStreamSize

처리 중인 스트림의 크기(바이트)입니다.

Info.Error.uliStreamBytesTransferred

처리 중인 스트림에 대해 성공적으로 전송된 바이트 수입니다.

Info.Error.uliTotalFileSize

처리 중인 총 파일의 크기(바이트)입니다.

Info.Error.uliTotalBytesTransferred

전체 복사 작업에 대해 성공적으로 전송된 바이트 수입니다.

설명

COPYFILE2_MESSAGE 구조를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 매크로를 0x0601 이상으로 정의합니다. 자세한 내용은 Windows 헤더 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱 | UWP 앱]
머리글 winbase.h(Windows.h 포함)