3.2.4.11.2.2 Application requests a Server-side Data Copy

The application provides:

  • A handle to the Open representing the destination file.

  • Copychunk Resume Key of the source file.

  • List of source and destination offsets and the lengths of data blocks to copy from the source file.

To request a server-side copy of a data range, the client constructs an NT_TRANSACT_IOCTL FSCTL_SRV_COPYCHUNK request, as specified in section 2.2.7.2.1. The Fid of the destination file (Open.FID) is placed in the FID field of the request along with the FSCTL_SRV_COPYCHUNK function code.

The NT_Trans_Data buffer of the request is constructed as follows:

  • CopychunkResumeKey is set to the application-provided resume key.

  • CopyChunkList is set to a list of SRV_COPYCHUNK structures (section 2.2.7.2.1.1), where each structure is filled with the application-supplied source and destination offsets and the length of each data block.

  • ChunkCount is set to the total number of the data blocks supplied by the application.

The request is sent to the server and the server’s response is processed as specified in section 3.2.5.9.1.2.