3.1.5.4 Receiving a Referral Response

The DFS client receives the referral response in the form of RESP_GET_DFS_REFERRAL (section 2.2.4). If the NumberOfReferrals field is at least 1, the client MUST determine the version number of the referral response by accessing the VersionNumber field of the first referral entry immediately following the referral header and interpreting the referral entry as specified in section 2.2.5.

The NumberOfReferrals field in the referral header contains the number of referral entries in the response. The first referral entry immediately follows the referral header in the RESP_GET_DFS_REFERRAL message (section 2.2.4). From a given referral entry, the next referral entry is accessed by adding the Size field of the referral entry to the address of the given referral entry. The client MUST ignore the Padding field if present.

When a DFS path resolves to multiple referral entries, and the client supplies a buffer insufficiently large to hold the entries, the client can experience a non-deterministic server response.

If a DFS referral request fails with STATUS_BUFFER_OVERFLOW (0x80000005), the client SHOULD retry the referral request with a bigger buffer size.<11> Response data buffer size is determined as specified in section 3.2.5.1.