2.2.5 Referral Entry Types
The DFS: Referral Protocol defines four structures used to encode referral entries: DFS_REFERRAL_V1 (section 22.214.171.124), DFS_REFERRAL_V2 (section 126.96.36.199), DFS_REFERRAL_V3 (section 188.8.131.52), and DFS_REFERRAL_V4 (section 184.108.40.206).
All referral entries in a RESP_GET_DFS_REFERRAL message MUST use the same referral entry structure. As a consequence, all referral entries in a RESP_GET_DFS_REFERRAL message MUST have the same value in their respective VersionNumber fields. The VersionNumber field defines the version number of the entire referral response.
The VersionNumber field also provides a more descriptive name to a referral entry or referral response. It is conventional to refer to a "version N" referral entry or a "version N" referral response, meaning a referral entry with a VersionNumber of N (of type DFS_REFERRAL_VN) or a referral response containing entries with a VersionNumber of N, respectively.
Each referral entry structure has a 16-bit Size field. The Size field indicates the total size, in bytes, of the referral entry. Clients MUST add the value of the Size field in a referral entry to the offset of that referral entry to find the offset of the next referral entry in the RESP_GET_DFS_REFERRAL message.
The DFS_REFERRAL_V2, DFS_REFERRAL_V3, and DFS_REFERRAL_V4 structures contain fields with offsets to strings. Clients MUST add the string offset to the offset of the beginning of the referral entry to find the offset of the string in the RESP_GET_DFS_REFERRAL message. The strings referenced from the fields of a referral entry MUST follow the last referral entry in the RESP_GET_DFS_REFERRAL message.