The Distributed Link Tracking: Workstation Protocol is based on the RPC runtime, as specified in [C706] and [MS-RPCE], and on the server message block (SMB) protocol and extensions, as specified in [MS-SMB] and [MS-SMB2].
This protocol is used by a client to get a file's identity and location on the server computer as a MachineID, FileID, FileLocation, and Universal Naming Convention (UNC) name. If a client contacts a server that previously stored the file, but the file has been moved to a new computer, the server might be able to return the MachineID of the computer to which the file was moved, so that the client can contact the DLT Workstation server on the new computer to get the file's current UNC and FileLocation, or another referral. This process of following referrals continues until a server returns the file's UNC name and FileLocation, or an error.
Rather than following referrals in this manner, a client can use the Distributed Link Tracking: Central Manager Protocol to determine a file's current MachineID and FileLocation, and then use that information to initiate a call to the DLT Workstation server on the computer indicated by that MachineID. For more information on using the Distributed Link Tracking: Central Manager Protocol in combination with the Distributed Link Tracking: Workstation Protocol, see [MS-DLTM].
The following is a scenario that describes the DLT protocols working together:
A file is created on computer M1. M1 assigns identifiers, specifically FileID and FileLocation, to the file.
Computer M0 takes note of the file, locally storing its identifiers.
The file is moved from computer M1 to M2 and from there to M3. In concert with these moves, the file maintains its FileID but gets a new FileLocation assigned.
If the Distributed Link Tracking: Central Manager Protocol is used, clients on computers M1 and M2 notify the server that the file has been moved, indicating the file's FileID and its old and new FileLocation values.
Computer M0 finds the file in its new location in one of two ways:
Using only the Distributed Link Tracking: Workstation Protocol:
M0 contacts M1, using the identifiers stored previously, and learns that the file was moved to M2.
M0 contacts M2 and learns that the file was moved to M3.
M0 contacts M3 and learns the file's new name and location.
Using both the Distributed Link Tracking: Workstation Protocol and the Distributed Link Tracking: Central Manager Protocol:
M0 contacts a DLT Central Manager server to query the current location of the file.
The server queries its tables and determines that the file is currently on computer M3.
M0 contacts the DLT Workstation client on M3 and learns the file's new name and location.
The following is an example of a file being moved between computers, and shows in more detail how to use the Distributed Link Tracking: Workstation Protocol to determine the file's new location. In this example, only the Distributed Link Tracking: Workstation Protocol is used, without using the Distributed Link Tracking: Central Manager Protocol.
In the initial state, a file is located on a computer named M1. Assume that the file is named "F1.txt", and can be located via the UNC "\\M1\share1\F1.txt".
Before the file is moved, a user on computer M0 requests that information about the file be saved,<1> so that its location can be determined after it has been moved. As a result, M0 stores the UNC, the MachineID, the FileLocation, and the FileID.
The file is moved from machine M1 to machine M2; for example, to the UNC "\\M2\share2\F2.txt". M1 stores the file's old FileLocation and FileID, as well as the file's new FileLocation and MachineID.
When M0 attempts to open the file<2> by using the UNC "\\M1\share1\F1.txt", it receives a file-not-found error message. M0 then initiates a call to the DLT Workstation server on M1 with the previously stored FileID and FileLocation of the file.
The DLT Workstation server on M1 returns to the DLT Workstation client on M0 that the file was moved, and specifies the MachineID of the file's new location (M2), as well as the file's new FileLocation value.
M0 then repeats the call, but this time to the DLT Workstation server on M2 with the new FileLocation value.
The DLT Workstation server on M2 returns to the DLT Workstation client on M0 the file's new UNC, "\\M2\share2\F2.txt".
The DLT Workstation client on M0 then updates its stored values with the updated UNC and FileLocation values.