Overview: Read Server Message Block Request and Response

Last reviewed: January 7, 1997
Article ID: Q103879

Read SMB (Request)

The read server message block (sometimes called read byte range) provides the server with all of the information needed to read a specific range of bytes from a disk file--file handle, number of bytes to read, and so on.

The file offset provided is based on a "seek pointer" that the redirector keeps locally for the file. The server's seek pointer for this file handle is not valid in this case because many remote workstation processes may be accessing the same server operating system file handle.

The "est'd total," parameter (estimated total bytes to be read, including those read by this request) is optional. The server can use this information for read-ahead or to optimize buffer allocation.

Read SMB (Response)

The response to the read SMB, returned from the server, carries with it the data requested. The multiplex identifier (MID) keeps the SMB response labeled for the corresponding the SMB request.

What It Looks Like

Here is how the process works:

  • An application submits an I/O request to operating system through an application programmer interface (API) call.
  • The operating system (or the redirector by way of the int 21 hook) determines that the request is for a remote resource, and passes it to the redirector.
  • The redirector formats the I/O request as an SMB request and sends it to the server through the network.
  • The server receives the SMB and submits the I/O request to the server's local operating system, according to the parameters included in the SMB request.
  • The server formats the operating system response (data returned if read, return code if write, etc.) as an SMB response and sends it to the requesting workstation through the network.
  • The redirector passes the response back to the operating system.
  • The operating system passes the response to the calling application.

Please see Q102738 for additional reference material and book suggestions


KBCategory: kbnetwork
KBSubCategory: msna



THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: January 7, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.