5/11/2023 0 Comments Lanman redirectorDue to the fact that DFS runs over SMB, normally the redirector device chosen will be \Device\Lanman Redirector. At the start of processing, MUP finds the appropriate redirector to use to communicate with this DFS server and prepares to send this create request to the DFS server via the redirector. However, this time the create is targeted to the DFS device object and proceeds down a different code path in MUP that handles DFS related activity. Figure 2-And Now, with DFSĪs a result of this reparse, processing of the open restarts back at the MupCreate function. \Device\WinDfs\Root happens to be another device object that the MUP driver creates to handle opens targeted to DFS servers. At this point, MUP then reparses this open of the DFS root back to its own driver, by replacing the name in the file object with \Device\WinDfs\Root\DfsServer\DfsShare and returning STATUS_REPARSE. MUP then does a probe of the server to determine if it is a DFS server (details of this probe are outside of the scope of this article), and receives a response that indicates that \\DfsServer does in fact support DFS. With DFS, things begin identically to the non-DFS case behavior, with the open of \\DfsServer\DfsRoot first arriving at MUP’s dispatch entry point for create operations, MupCreate. The introduction of DFS in this picture complicates things, as shown in Figure 2. A simplified depiction of this configuration is shown in Figure 1 (note that the calling of the redirectors for the name resolution step is not depicted). This restarts the create operation targeted at the appropriate redirector device and MUP, with its job done at this point, is no longer in the picture. If the redirector indicates that the server is indeed one of its own, then the name resolution stops and MUP reparses the open (using the standard STATUS_REPARSE method for Windows) to the appropriate redirector device object. Later, when a user attempts to open a name in the form of \\FooServer\Share, MUP begins calling each of the redirector drivers to determine if this path represents a server that the redirector supports. Upon receipt of this request, MUP uses the device object to extract and store the name of the redirector device as well as a pointer to the redirector device object. Other popular redirector device object names are \Device\WebDavRedirector and \Device\NetWareRedirector, for WebDAV and Novell Netware support, respectively. ![]() For example, in the case of the SMB mini-redirector driver, the name provided to MUP is \Device\LanmanRedirector. During the boot process, special drivers called network redirectors (typically either monolithic network file system or mini-redirector drivers) register with the Multiple UNC Provider (MUP) driver by calling FsRtlRegisterUncProvider (or FsRtlRegisterUnc ProviderEx in Vista and later), providing the name of their redirector device object as part of that registration process. In order to understand the complexities of the problems we’ve experienced, we’ll need to first get a feel for the way things work without any filters involved. The Players: DFS Client, MUP, and Network Redirectors In addition, the Filter Manager mini-filter abstraction attempts to hide some of the implementation details and in the process complicates things even more.īefore we begin, we should note that substantial changes have been made to this space in Vista and thus the discussions in this article only apply to O/S releases prior to Vista unless noted otherwise. Unfortunately, due to some architectural and design decisions made in the implementation of XP’s DFS client support, dealing with DFS can quickly become a hornet’s nest at the bottom of a rat hole. ![]() Aside from the potential aliasing issues that this architecture introduces, which exist in other scenarios anyway, this seems like the sort of thing that should be handled transparently to the client. To the casual observer, one would expect that a file system filter driver writer would care little to nothing about DFS. Thus, ignoring the other features and options that DFS provides, DFS is effectively a name aliasing technology that allows an administrator to redirect client requests from one machine to another.įrustratingly, over the years we’ve regularly run into nagging issues with DFS’ interaction with the file system filter drivers that we have written. ![]() This could then end up being a link to an entirely different server, say \\FooServer\Share. To clients, the links appear as regular folders under the root share, however they can point to shares either on the same server system or on any other computer in the organization.įor example, you may access a share from your client machine via the path \\DfsServer\DfsRoot\Documents. The Distributed File System (DFS) is a Microsoft technology that allows for an enterprise to configure a single server with a root share that contains multiple links.
0 Comments
Leave a Reply. |