[MS-SMB2] Clarification regarding the relationship between MaxTransactSize and MaxReadSize

Tal Aloni 5 Reputation points
2024-01-22T21:05:39.4433333+00:00

Hello, According to [MS-SMB2] 2.2.4 NEGOTIATE Response: MaxTransactSize (4 bytes): The maximum size, in bytes, of the buffer that can be used for QUERY_INFO, QUERY_DIRECTORY, SET_INFO and CHANGE_NOTIFY operations. MaxReadSize - The maximum read size, in bytes, that the server will accept in an SMB2 READ Request on this connection According to 3.2.5.1 Receiving Any Message - "If the message size received exceeds Connection.MaxTransactSize, the client MUST disconnect the connection" So if I'm reading this right, MaxReadSize must be less than or equal to MaxTransactSize, or otherwise the client may request read size greater than MaxTransactSize, causing the server to disconnect the connection. However, I have been informed that Windows Server 2019 does (in some cases) return MaxReadSize value that is greater than MaxTransactSize. A clarification would be appreciated. Thank you!

Windows Server 2019
Windows Server 2019
A Microsoft server operating system that supports enterprise-level management updated to data storage.
3,768 questions
Windows Server
Windows Server
A family of Microsoft server operating systems that support enterprise-level management, data storage, applications, and communications.
13,133 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Tal Aloni 5 Reputation points
    2024-02-01T23:00:36.9133333+00:00
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.