Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

2.2.7.2.1 Client Request Extensions

The NT_TRANSACT_IOCTL request is a special case of the SMB_COM_NT_TRANSACT command request. Only the NT_TRANSACT_IOCTL specifics are described here.

The FSCTL operations listed in the table below are new to these extensions and only those are specific to the SMB protocol.<64> Other FSCTL and IOCTL control codes are not defined in this specification and are specific to the underlying object store of the server.<65> If an application requests an undefined FSCTL or IOCTL operation, then the client SHOULD still pass the request through to the server.

Name

Value

Description

FSCTL_SRV_ENUMERATE_SNAPSHOTS

0x00144064

Enumerate previous versions of a file.

FSCTL_SRV_REQUEST_RESUME_KEY

0x00140078

Retrieve an opaque file reference for server-side data movement.<66>

FSCTL_SRV_COPYCHUNK

0x001440F2

Perform server-side data movement.<67>

FSCTL_SRV_ENUMERATE_SNAPSHOTS Request

This FSCTL is used to enumerate available previous version timestamps (snapshots) of a file or directory.

The FSCTL_SRV_ENUMERATE_SNAPSHOTS request format is a special case of the NT_TRANSACT_IOCTL subcommand. Only the FSCTL_SRV_ENUMERATE_SNAPSHOTS request specifics are described here.

SMB_Parameters

WordCount (1 byte): The value of this field MUST be 0x17.

Words (46 bytes): As specified in [MS-CIFS] section 2.2.4.62.1 and with the following exceptions:

MaxDataCount (4 bytes): This field MUST be greater than or equal to 0x000C.

SetupCount (1 byte): The number of setup words that are included in the transaction request. The value MUST be set to 0x04.

Setup (8 bytes): As specified in [MS-CIFS] section 2.2.7.2.1 and with the following exceptions:

FunctionCode (4 bytes): This field MUST be set to 0x00144064.

FID (2 bytes): This field MUST contain a valid Fid representing a valid Open on a file. This is the file for which snapshots are being requested.

IsFsctl (1 byte): MUST be TRUE (any non-zero value).

IsFlags (1 byte): MUST be zero (0x00).

NT_Trans_Parameters

No NT Trans parameters are sent in this request.

NT_Trans_Data

No NT Trans data is sent in this request.

FSCTL_SRV_REQUEST_RESUME_KEY Request

This FSCTL is used to retrieve an opaque file reference for server-side data movement operations, as specified in section 3.2.4.11.2.

The FSCTL_SRV_REQUEST_RESUME_KEY request format is a special case of the NT_TRANSACT_IOCTL subcommand. Only the FSCTL_SRV_REQUEST_RESUME_KEY request specifics are described here.

SMB_Parameters

WordCount (1 byte): The value of this field MUST be 0x17.

Words (46 bytes):

MaxDataCount (4 bytes): This field MUST be greater than or equal to 0x001D.

Setup (8 bytes):

FunctionCode (4 bytes): This field MUST be 0x00140078.

FID (2 bytes): This field MUST contain a valid Fid that represents a valid Open on a file. This file is the source file for a server-side data copy operation.

IsFsctl (1 byte): MUST be TRUE (any non-zero value).

IsFlags (1 byte): MUST be zero (0x00).

NT_Trans_Parameters

No NT Trans parameters are sent in this request.

NT_Trans_Data

No NT Trans data is sent in this request.

FSCTL_SRV_COPYCHUNK Request

This FSCTL is used for server-side data movement, as specified in section 3.2.4.11.2.

The FSCTL_SRV_COPYCHUNK request format is a special case of NT_TRANSACT_IOCTL subcommand. Only the FSCTL_SRV_COPYCHUNK request specifics are described here.

SMB_Parameters

WordCount (1 byte): The value of this field MUST be 0x17.

Words (46 bytes):

TotalDataCount (4 bytes): This field MUST be greater than or equal to 0x0034.

MaxDataCount (4 bytes): This field MUST be greater than or equal to 0x001D.

Setup (8 bytes):

FunctionCode (4 bytes): This field MUST be 0x00144078.

FID (2 bytes): This field MUST contain a valid Fid that represents a valid Open on a file. This file is the destination file for a server-side data copy operation.

IsFsctl (1 byte): This field MUST be TRUE (any non-zero value).

IsFlags (1 byte): The value of this field MUST be zero (0x00).

NT_Trans_Parameters

No NT Trans parameters are sent in this request.

NT_Trans_Data

NT_Trans_Data
  {
  COPYCHUNK_RESUME_KEY CopychunkResumeKey;
  ULONG                ChunkCount;
  ULONG                Reserved;
  SRV_COPYCHUNK        CopychunkList[ChunkCount];
  }


0

1

2

3

4

5

6

7

8

9
1
0

1

2

3

4

5

6

7

8

9
2
0

1

2

3

4

5

6

7

8

9
3
0

1

CopychunkResumeKey

...

...

...

...

...

ChunkCount

Reserved

CopychunkList (variable)

...

CopychunkResumeKey (24 bytes): An opaque 24-byte server copychunk resume key for a source file in a server-side file copy operation. This field value is received from a previous FSCTL_SRV_REQUEST_RESUME_KEY server response.

ChunkCount (4 bytes): The number of entries, or "copychunks", in the CopyChunkList. This field also represents the number of server-side data movement operations being requested. This field MUST NOT be zero.

Reserved (4 bytes): A reserved field. This field SHOULD be set to zero when sending the request. This field MUST be ignored by the server when the message is received.

CopychunkList (variable): A concatenated list of copychunks. Each entry is formatted as a SRV_COPYCHUNK structure.

 
Show:
© 2015 Microsoft