Microsoft KB Archive/103879
Article ID: 103879
Article Last Modified on 7/30/2001
This article was previously published under 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 102738 for additional reference material and book suggestions