共用方式為


2.2.4.8.1 Request

 SMB_Parameters
   {
   UCHAR WordCount;
   Words
     {
     SMB_FILE_ATTRIBUTES SearchAttributes;
     }
   }
 SMB_Data
   {
   USHORT ByteCount;
   Bytes
     {
     UCHAR      BufferFormat1;
     SMB_STRING OldFileName; 
     UCHAR      BufferFormat2;
     SMB_STRING NewFileName;
     }
   }

SMB_Header:

Flags2 (2 bytes): USHORT

Name and bitmask

Relevance

SMB_FLAGS2_LONG_NAMES

0x0001

Wildcard pattern matching behavior.

If this flag is not set, wildcard patterns MUST compare against 8.3 names only. If a file has a long name, the wildcard pattern MUST be compared to that file's 8.3 name.

If this flag is set, file names MAY be long file names and wildcard patterns MUST compare against the long file name of a file if it is available.

TID (2 bytes): This field MUST contain a valid TID.

UID (2 bytes): This field MUST contain a valid UID.


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

SMB_Parameters

SMB_Data (variable)

...

SMB_Parameters (3 bytes):


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

WordCount

Words

WordCount (1 byte): This field MUST be 0x01.

Words (2 bytes):


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

SearchAttributes

SearchAttributes (2 bytes): Indicates the file attributes that the file(s) to be renamed MUST have. If the value of this field is 0x0000, then only normal files MUST be matched to be renamed. If the System or Hidden attributes are specified, then entries with those attributes MAY be matched in addition to the normal files. Read-only files MUST NOT be renamed. The read-only attribute of the file MUST be cleared before it can be renamed.

SMB_Data (variable):


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

ByteCount

Bytes (variable)

...

ByteCount (2 bytes): This field MUST be greater than or equal to 0x0002.

Bytes (variable):


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

BufferFormat1

OldFileName (variable)

...

BufferFormat2

NewFileName (variable)

...

BufferFormat1 (1 byte): This field MUST be 0x04.

OldFileName (variable): A null-terminated string that contains the name of the file or files to be renamed. Wildcards MAY be used in the filename component of the path.

BufferFormat2 (1 byte): This field MUST be 0x04.

NewFileName (variable): A null-terminated string containing the new name(s) to be given to the file(s) that matches OldFileName or the name of the destination directory into which the files matching OldFileName MUST be moved.