2.4.23.2 FileLinkInformation for the SMB2 Protocol

This information class is used to create a hard link to an existing file via the SMB Version 2 Protocol, as specified in [MS-SMB2].

A FILE_LINK_INFORMATION_TYPE_2 data element, defined as follows, is provided by the client.


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

ReplaceIfExists

Reserved

...

RootDirectory

...

FileNameLength

FileName (variable)

...

ReplaceIfExists (1 byte): A Boolean (section 2.1.8) value. Set to TRUE to indicate that if the link already exists, it SHOULD be replaced with the new link. Set to FALSE to indicate that the link creation operation MUST fail if the link already exists.

Reserved (7 bytes): Reserved for alignment. This field can contain any value and MUST be ignored.

RootDirectory (8 bytes): A 64-bit unsigned integer that contains the file handle for the directory where the link is to be created. For network operations, this value MUST be zero.

FileNameLength (4 bytes): A 32-bit unsigned integer that specifies the length in bytes of the file name contained within the FileName field.

FileName (variable): A sequence of Unicode characters containing the name to be assigned to the newly created link. When working with this field, the FileNameLength field is used to determine the length of the file name rather than assuming the presence of a trailing null delimiter. If the RootDirectory field is zero, this field MUST specify a full pathname to the link to be created. For network operations, this pathname is relative to the root of the share. If the RootDirectory field is not zero, this field MUST specify a pathname, relative to RootDirectory, for the link name.