Alan,
Thanks for the tip on the advanced settings, that is helping me out. One question. Could you tell me if the Novell file servers support or ever supported alternative data streams on files and directories? For example, using somefile.txt:foo to store an alternate data stream in the somefile.txt file, or somedir:foo to store an alternative stream in a directory.
Thanks,
Matt
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Alan Adams
Sent: Monday, December 20, 2010 9:26 AM
To: Windows File Systems Devs Interest List
Subject: Re:[ntfsd] Novell redirector hates IOCTL_REDIR_QUERY_PATH_EX
xxxxx@bitarmor.com wrote:
Well, the purpose of NcUncFltIsNovellPath is somewhat obvious. It
takes in a network path and checks to see if it’s on a novell server
(I believe they call down to the redirector to find that out). It
returns TRUE if it is on a novell server or FALSE otherwise. In our
case, the path is indeed on a novell server, so TRUE is returned. They
then fail the redirect request because of this.
I think we received further insight into this behavior. It seems to be
related to performance optimization on Novell’s side. They want
requests to known novell path to fail quickly, which would cause the
connection to immediately go directly through novell client without an noticeable delay.
The code path being described where NCUncFilter reaches the point of invoking NcUncFltIsNovellPath is something that happens when NCUncFilter is filtering an IOCTL_REDIR_QUERY_PATH_EX IRP which was about to be passed to the Microsoft MRxSMB redirector.
The purpose is exactly as stated; to preemptively fail IOCTL_REDIR_QUERY_PATH/_EX requests which MUP would have continued to send to MRXSMB even after Novell’s redirector (NCFSD) knows the particular server named is an Novell server the machine has an established NCP connection to. To try and avoid (for the customer’s
benefit) the potential NetBIOS and other Microsoft name resolution delays that will occur when this known Novell name/path continues to be sent to MRxSMB.
(There are also IRP_MJ_CREATE cases which are filtered in the same manner, since there are also create requests which will continue to hit MRxSMB for names the Novell redirector already has established NCP connections with.)
But just to be clear, this is not something expected to behave as “Novell redirector is failing access to \FOO\SHARE with STATUS_BAD_NETWORK_NAME because NcUncFltIsNovellPath is returning TRUE for a known Novell path”.
NcUncFltIsNovellPath is being called because NCUncFilter has intercepted the UNC path being sent /to MRxSMB/, and it’s the IOCTL_REDIR_QUERY_PATH/_EX request /to MRxSMB/ which is being preemptively failed with STATUS_BAD_NETWORK_NAME.
When an IOCTL_REDIR_QUERY_PATH/_EX with this UNC path is actually being sent /to the Novell redirector/ (NCFSD on Windows 6.x, NWFS on Windows 5.x), the described NCUncFilter code wouldn’t have engaged because the IRP wasn’t being sent to MRxSMB.
If a quick workaround is needed, note that setting the “UNC Path Filter” to “Off” in the “Advanced Settings” tab of the “Novell Client Properties” will disable the involved NCUncFilter drivers, such that MUP interaction with the installed redirectors will occur without any preemptive failures injected by NCUncFilter.
Alan Adams
Novell Client CPR Group
xxxxx@novell.com
Novell
Making IT Work As One
www.novell.com
Upgrade to OES Community
http://www.novell.com/communities/coolsolutions/upgradetooes/
NTFSD is sponsored by OSR
For our schedule of debugging and file system seminars (including our new fs mini-filter seminar) visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer