次の方法で共有


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
コピー先ファイルが存在する場合、コピー操作はすぐに失敗します。 コピー先の名前を持つファイルまたはディレクトリが存在する場合、CopyFile2 関数の呼び出しは または HRESULT_FROM_WIN32(ERROR_FILE_EXISTS)のいずれかで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 プロトコルのバージョンは SMB v3.1.1 以降です。
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 操作ごとに要求されたサイズ (バイト単位) (つまり、ファイルのコピー中に 1 回の読み取り/書き込みサイクル)。 メモリが不足している場合は、この問題が軽減される可能性があります。 0 の場合は、既定のサイズが使用されます。 ioDesiredRate も指定されている場合、これは無視される可能性があります

ioDesiredRate

省略可能。 要求された平均 I/O レート (KB/秒)。 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 アプリ]
Header winbase.h (Windows.h を含む)

こちらもご覧ください

CopyFile2

COPYFILE2_EXTENDED_PARAMETERS

CopyFile2ProgressRoutine

ファイル管理の構造体

LPPROGRESS_ROUTINE

Windows ヘッダーの使用