Win32 API 日本語リファレンス
ホーム › Storage.FileSystem › PCOPYFILE2_PROGRESS_ROUTINE

PCOPYFILE2_PROGRESS_ROUTINE

コールバック

シグネチャ

COPYFILE2_MESSAGE_ACTION PCOPYFILE2_PROGRESS_ROUTINE(
    COPYFILE2_MESSAGE* pMessage,
    void* pvCallbackContext
);

パラメーター

フィールド型説明
pMessageCOPYFILE2_MESSAGE*COPYFILE2_MESSAGE 構造体へのポインターです。
pvCallbackContextvoid*CopyFile2 に渡された COPYFILE2_EXTENDED_PARAMETERS 構造体の pvCallbackContext メンバーに指定された値のコピーです。

公式ドキュメント

アプリケーション定義のコールバック関数で、 CopyFile2 関数とともに使用されます。コピーまたは移動操作の一部が 完了したときに呼び出されます。PCOPYFILE2_PROGRESS_ROUTINE 型は、このコールバック関数への ポインターを定義します。 CopyFile2ProgressRoutine は、アプリケーション定義の 関数名のプレースホルダーです。

戻り値

実行すべきアクションを示す、COPYFILE2_MESSAGE_ACTION 列挙体の値。

戻り値/値 説明
COPYFILE2_PROGRESS_CONTINUE
0
コピー操作を続行します。
COPYFILE2_PROGRESS_CANCEL
1
コピー操作をキャンセルします。CopyFile2 関数は 失敗し、 HRESULT_FROM_WIN32(ERROR_REQUEST_ABORTED) を返します。また、 部分的にコピーされた断片はすべて削除されます。
COPYFILE2_PROGRESS_STOP
2
コピー操作を停止します。CopyFile2 関数は 失敗し、HRESULT_FROM_WIN32(ERROR_REQUEST_ABORTED) を返します。また、 部分的にコピーされた断片はそのまま残されます。この操作を COPY_FILE_RESUME_FROM_PAUSE フラグで再開できるのは、CopyFile2 関数に渡された COPYFILE2_EXTENDED_PARAMETERS 構造体の dwCopyFlags メンバーに COPY_FILE_RESTARTABLE が設定されていた場合のみです。
COPYFILE2_PROGRESS_QUIET
3
コピー操作は続行しますが、この操作について CopyFile2ProgressRoutine コールバック関数を 再度呼び出しません。
COPYFILE2_PROGRESS_PAUSE
4
コピー操作を一時停止します。ほとんどの場合、CopyFile2 関数は失敗して HRESULT_FROM_WIN32(ERROR_REQUEST_PAUSED) を返し、 部分的にコピーされた断片は(後でコピー操作を再開するために書き込まれるヘッダーを除いて)そのまま残されます。 一時停止の要求が処理された時点でコピー操作が完了していた場合は、 CopyFile2 の呼び出しは成功し、再開用のヘッダーは 書き込まれません。

解説(Remarks)

COPYFILE2_CALLBACK_STREAM_FINISHED メッセージは、一時停止されたコピーにおける 最後のメッセージです。COPYFILE2_CALLBACK_STREAM_FINISHED メッセージへの応答として COPYFILE2_PROGRESS_PAUSE を返した場合、以降のコールバックは送信されません。

PCOPYFILE2_PROGRESS_ROUTINE 関数ポインター型を使用するアプリケーションをコンパイルするには、 _WIN32_WINNT マクロを 0x0601 以降として定義します。詳細については、 Windows ヘッダーの使用を参照してください。

Windows 8 および Windows Server 2012 では、この関数は次のテクノロジでサポートされています。

テクノロジ サポート
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 透過的フェールオーバー (TFO) はい
スケールアウト ファイル共有 (SO) を使用する SMB 3.0 はい
クラスターの共有ボリューム ファイル システム (CsvFS) はい
回復性のあるファイル システム (ReFS) はい
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)