2.1 Transport
The DFS: Referral Protocol uses the Server Message Block (SMB) protocol family as its transport. The specific version of the SMB protocol used for the transport is chosen in the SMB layer. For more information, see [MS-CIFS] section 3.4.4.9.
When the SMB protocol (version 1, as specified in [MS-CIFS] or [MS-SMB]) is used as the transport, the referral request is sent in the form of a REQ_GET_DFS_REFERRAL structure in the Trans2_Parameters block of the TRANS2_GET_DFS_REFERRAL request within an SMB_COM_TRANSACTION2 message, and the referral response is received in a TRANS2_GET_DFS_REFERRAL response within an SMB_COM_TRANSACTION2 response. The TRANS2_GET_DFS_REFERRAL request and response messages are specified in [MS-CIFS] sections 2.2.6.16.1 and 2.2.6.16.2. The SMB_COM_TRANSACTION2 message is specified in [MS-SMB] section 2.2.4.4.
The underlying SMB protocol implementation MUST support the DFS flags in SMB packets as specified in [MS-SMB]. The assignments used by the SMB Protocol that are relevant to the DFS: Referral Protocol are as follows.
Parameter |
Value |
Reference |
---|---|---|
TRANS2_GET_DFS_REFERRAL subcommand type for the SMB_COM_TRANSACTION2 packet. |
0x0010 |
[MS-SMB] section 2.2.4.4 and [MS-CIFS] section 2.2.6.16.1 |
CAP_DFS bit in the SMB_COM_NEGOTIATE Server Response extension. |
0x00001000 |
[MS-SMB] section 2.2.4.5.2.1 |
SMB_SHARE_IS_IN_DFS bit in the OptionalSupport field of the SMB_COM_TREE_CONNECT_ANDX response. |
0x0002 |
[MS-SMB] section 2.2.4.7.2 |
SMB_FLAGS2_DFS bit in the Flags2 field of the SMB header. |
0x1000 |
[MS-SMB] section 2.2.3.1 |
When the SMB Version 2.0 Protocol is used as the transport, the referral request is sent as an SMB2 IOCTL request message. To respond to a referral request, the DFS: Referral Protocol server provides a buffer to the SMB Version 2.0 Protocol as a response, and the SMB Version 2.0 Protocol implementation MUST transfer it using the IOCTL response message. The SMB2 IOCTL request message is specified in [MS-SMB2] section 2.2.31 and the SMB2 IOCTL response message is specified in [MS-SMB2] section 2.2.32.