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

この構造体内の Info 共用体の判別として使用されるCOPYFILE2_MESSAGE_TYPE列挙からの値。

意味
COPYFILE2_CALLBACK_CHUNK_STARTED
1
ストリームの 1 つのチャンクのコピーが開始されたことを示します。 情報は、情報共用体内の ChunkStarted 構造体内にあります。
COPYFILE2_CALLBACK_CHUNK_FINISHED
2
ストリームの 1 つのチャンクのコピーが完了したことを示します。 情報は、情報共用体内の ChunkFinished 構造体内にあります。
COPYFILE2_CALLBACK_STREAM_STARTED
3
ストリームのソース ハンドルと宛先ハンドルの両方が開き、ストリームのコピーが開始されようと中であることを示します。 情報は、情報共用体内の StreamStarted 構造体にあります。 これは、そのストリームのコピーが開始されたことを示すものではありません。
COPYFILE2_CALLBACK_STREAM_FINISHED
4
ストリームのコピー操作が正常に開始されたか、CopyFile2ProgressRoutine からCOPYFILE2_PROGRESS_STOPが返されたために開始されたことを示します。 情報は、情報共用体内の StreamFinished 構造体にあります。
COPYFILE2_CALLBACK_POLL_CONTINUE
5
定期的に送信される場合があります。 情報は、情報共用体内の PollContinue 構造体にあります。
COPYFILE2_CALLBACK_ERROR
6
コピー操作中にエラーが発生しました。 情報は、情報共用体内の Error 構造にあります。

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 アプリ]
Header winbase.h (Windows.h を含む)