afnarqui / dokan

Automatically exported from code.google.com/p/dokan
0 stars 0 forks source link

Network sharing does not work #168

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
It's already been posted to the message board, there seems to be a little 
problem sharing folders through dokan. Explorer says "Incorrect function" when 
I try to open the sharer, which stands for ERROR_INVALID_FUNCTION (1).

Original issue reported on code.google.com by gabest11 on 25 Jul 2010 at 12:05

GoogleCodeExporter commented 9 years ago
I have this working with 0.5.3 under XP Sp3 and win7, But have the above being 
reported for Notepad on Win 7 (Works on XP)
So a little more information would be good !
Like
What version of Dokan ?
Is this your own implementation ?
What Apps report the above error ?
How to recreate ?
Can this be done on a single machine by browsing to the netword shares (See 
issues 181)

Original comment by smurf...@gmail.com on 29 Aug 2010 at 5:02

GoogleCodeExporter commented 9 years ago
I'm having this issue on Server 2008 R2 - I'll try Win7 and XP and see if I can 
find the difference.

Version: 0.5.3

Implementation: Sample Mirror, my own custom mirror and other similar solutions 
are all susceptible to this problem.

Recreate: From Windows Explorer, attempt to browse to the UNC path of the 
share. Shares were set on the root drive and on subfolders with the same 
result. Error is present when browsing from the local host that serves the 
Share and from remote Win7 & 2008R2 boxes.

I am struggling to get a debugging environment running. I've gotten WinDBG 
connected to my VM but was hoping to link that to source, that's not working so 
well. If anyone can assist with a guide or something for doing source code 
kernel debugging, I'm happy to invest the time to help get to the bottom of 
this.

Original comment by salty...@gmail.com on 30 Aug 2010 at 12:21

GoogleCodeExporter commented 9 years ago
Something to be aware of in Win7 (And probably win 2k8 as it's the same kernel) 
is that when the share is passed through Dokan it comes with extra slashes
e.g if I have a Dokan Drive M:\share\Temp
And I have shared Temp with the name Temp1Share
Then Dokan will pass the filename attribute (From a client) as \Temp\
See that 2 slashes 1 at the beginning and one at the end.
It doesn't always do that (Depnds on where in the share / network chain it's 
coming from)
Have a look at my code in 
http://liquesce.codeplex.com/SourceControl/diff/file/view/54562?fileId=1289694

Original comment by smurf...@gmail.com on 30 Aug 2010 at 7:39

GoogleCodeExporter commented 9 years ago
The File above just shows the introduction to the changes to get Win7 share 
access working.
If you want to look at the latest file, that actually has it working then that 
would be good for your implementation.

Original comment by smurf...@gmail.com on 30 Aug 2010 at 7:42

GoogleCodeExporter commented 9 years ago
I've run up a copy of Liquesce on a 2008R2 & Win7 box. I'm getting the 
Incorrect Function error on both environments. I then tried connecting from a 
Server 2003 box (Srv2003 was the client accessing the share served up on the 
Win7 box)

This worked!

So, at this stage I'm thinking its related to a more strict security config in 
newer OSes... I'll look into that next and report back. Of course, it could be 
a difference in the way XP/2003 requests access to the shares...

Original comment by salty...@gmail.com on 30 Aug 2010 at 12:42

GoogleCodeExporter commented 9 years ago
I've tried a couple of other combinations - these were all x64 environments:

This was with the stock mirror.exe shipping with Dokan 0.5.3

Server (Hosting Share) / Client

Server 2008 R2 / Server 2008 R2 (Same or another box) - Error Incorrect Function
Server 2008 R2 / Windows 7 - Error Incorrect Function

Windows 7 / Server 2003 - Working
Windows 7 / Server 2008 R2 - Error Incorrect Function

Server 2003 / Windows 7 - Working
Server 2003 / Server 2008 R2 - Working

I'll fill in the missing combinations tomorrow. Hoping to add Vista and XP to 
the mix. I'll instrument the heck out of the mirror source code and see where 
the differences are in the calls to the API for each OS.

At the moment, I've passed through all of the hard drives to a Hyper-V guest 
and loaded up Server 2003 to host the Dokan fileshare. This allows all my boxes 
to connect (a mixture of Win7 & 2008 R2) - its working really well.

Original comment by salty...@gmail.com on 4 Sep 2010 at 2:26

GoogleCodeExporter commented 9 years ago
I've tried 

Server (Hosting Share) / Client

Win 7 (32) / Win 7 (32) - Works
Win 7 (32) / Win 7 (x64) - Works
Win 7 (x64) / Win 7 (x64) - Fails

Also had an issue that the Win 7 (x64) Dokan passes in a blank filename which 
caused my installation to throw an exception (New version handles this see 
http://liquesce.codeplex.com/releases/view/51864)

Original comment by smurf...@gmail.com on 5 Sep 2010 at 3:36

GoogleCodeExporter commented 9 years ago
Win 7 (x64) / Win XP (sp3) - Works
Win 7 (x64) / Win 7 (x32) - Fails

Original comment by smurf...@gmail.com on 6 Oct 2010 at 9:08

GoogleCodeExporter commented 9 years ago
Some Dokan debug information on calls in the following location 
"http://liquesce.codeplex.com/Thread/View.aspx?ThreadId=232083"

Original comment by smurf...@gmail.com on 24 Oct 2010 at 9:59

GoogleCodeExporter commented 9 years ago
Hey all,

I've spent the last few weeks of free time working through this specifically 
implementing the not implemented calls (FileInternalInformation, 
FileNetworkOpenInformation, DispatchQuerySecurity)

Of note, the call stacks presented here did not call the Query Security stuff 
even though a request was made (SL_FORCE_ACCESS_CHECK)

At this stage, I'm leaning towards a call which defines a x86 sized parameter 
and isn't handling x64 sized parameters. The reason for this is the posts...

Win 7 (32) / Win 7 (32) - Works
Win 7 (32) / Win 7 (x64) - Works

But:

Win 7 (x64) / Win XP (sp3) - Works
Win 7 (x64) / Win 7 (x32) - Fails

This leads me to believe the problem is in one of the new API calls, something 
that's specific to the Win7 platform (and possibly vista), a call that WinXP 
doesn't need to make...

This is all just a hypothesis. I reeeeally hoped that implementing the 
unsupported calls in the Dokan stack would make it all light up...

I've attached my modified files. I'm working on the DokanNet component to 
support NTFS ACLs being passed back...

- Comments welcome, I'm learning this as I go ;)

Original comment by salty...@gmail.com on 25 Oct 2010 at 10:49

Attachments:

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I have been doing a lot of workaround coding for this issue, when I finally 
stumbled upon Smb2 setting.. Anyway a little more searching sent me to this 
article that explains it clearly 
"http://www.petri.co.il/how-to-disable-smb-2-on-windows-vista-or-server-2008.htm
" Please give it a try and report back, to see if it fixes the sharing (It did 
on my Win 7 x64 Pro test system :-))

http://liquesce.codeplex.com/Thread/View.aspx?ThreadId=236580

Original comment by smurf...@gmail.com on 30 Nov 2010 at 9:35

GoogleCodeExporter commented 9 years ago
Hi, all
Thank you so much for your great investigations. I'm working on this issue.

Some more environment I tried:
Windows XP x86 / Windows 7 x64 - Works
Windows Vista x64 / Windows 7 x64 - Works
Windows 7 x64 / Windows 7 x64 - Fails

I found a very interesting workaround of this issue. When I changed 
MirrorFindFiles not to return "." or "..", it worked!!! FAT32 and NTFS do work 
with "." and "..", so there might be issue around Dokan's directory control.

Original comment by asa...@gmail.com on 7 Jan 2011 at 1:30

GoogleCodeExporter commented 9 years ago
Probably, I found the bug. The issue is the boundary alignment of 
NextEntryOffset in directory information structure. I will update the trunk 
after testing more.

Original comment by asa...@gmail.com on 7 Jan 2011 at 2:39

GoogleCodeExporter commented 9 years ago
The issue was fixed by http://code.google.com/p/dokan/source/detail?r=171
Thank you a lot for your help.

Original comment by asa...@gmail.com on 7 Jan 2011 at 4:12

GoogleCodeExporter commented 9 years ago
Hi,

Now, Its working in Windows 7 OS. But it seems not working in Windows 8 / 
Windows Server 2012 OSes.

Can you let me know, is there any fix for this issue?

Original comment by asharud...@gmail.com on 10 Jul 2014 at 12:35