EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Network Mounting Points vs. Old Style Mounting Points

Also by EldoS: CallbackFilter
A component to monitor and control disk activity, track file and directory operations (create, read, write, rename etc.), alter file data, encrypt files, create virtual files.
#9019
Posted: 02/23/2009 15:42:13
by Volodymyr Zinin (EldoS Corp.)

Quote
Sid Schipper wrote:
I have the LocalLink parameter set to FALSE, which I understood meant that it was a global mounting point. Do I need to set that parameter to TRUE? And if so, then I think your doc for it is very confusing. Local = FALSE should mean global, shouldn't it?

Sorry, I have missed that LocalLink set to FALSE. It's correct. Local == FALSE means global.
If you call AddNetworkMountingPoint (or AddMountingPoint(Ex)) from another logon session then it is necessary to have the Explorer Notification helper DLL (i.e. VSNetRdr.dll) installed on the computer. This dll helps to notify a session specific instance of Explorer about mounting points creation/deletion. Without it the created mounting points won't be visible in Explorer but will be accessible from the command line or the system API.
#9035
Posted: 02/24/2009 14:55:29
by Sid Schipper (Standard support level)
Joined: 03/14/2008
Posts: 285

Well, after thinking everything was Hunky-Dory, I ran some tests today that didn't work out the way I would have liked.

First of all, when I use MountMedia and AddNetworkMountingPoint for a drive I am calling the S: drive, I see the drive in Windows explorer as "Network Drive S:". If I later disconnect that drive by using DeleteMountingPointEx and UnmountMedia, the drive still shows in Windows Explorer as "Disconnected Network Drive S:'. Of course, at that point I cannot access the drive, since none of the callbacks work anymore, which is what I expected. But, if I then try to reconnect the drive by using MountMedia and AddNetworkMountingPoint again, the drive still shows in Windows Explorer as "Disconnected Network Drive S:", but now the callbacks work and I can access my virtual drive.

I would like it to work the way it used to, namely, when I add the mounting point I see it in Windows Explorer and when I delete it I don't see it there anymore.

Also, a curious thing happened when I tried to mount two different mounting points, namely the S: and the T: drives. In that case there were no error indications from AddNetworkMountingPoint, but the S; drive was the only one that showed up in Windows Explorer. The T: drive acts like the S: drive was acting the other day when I had all those problems that you supposedly fixed in this new version of the driver and the Network Helper dll. I can see the share "\\P125252\Srb_T", but I cannot see the T: drive.

Help??!

#9038
Posted: 02/25/2009 01:59:37
by Volodymyr Zinin (EldoS Corp.)

Seems that the network redirector helper dll is not installed correctly. Please reinstall completely both helper dll's and the driver. Use for the installation the network redirector dll attached above (that has the version 0.0.0.1) and the other components (driver, etc) from the latest 2.5.x build. Please check that the installation APIs return (i.e. if the RebootNeeded parameter is set than the reboot is necessary).

And check after the installation the version of the network redirector dll (VSNetRdr.dll that is located in <win_root>\system32). It is necessary because in a case if the helper dll is already installed, the installation API reinstall it only if its version is greater than the installed one (but the tested dll has the version 0.0.0.1).

Thanks.
#9039
Posted: 02/25/2009 02:42:24
by Volodymyr Zinin (EldoS Corp.)

Quote
Vladimir Zinin wrote:
Use for the installation the network redirector dll attached above (that has the version 0.0.0.1) and the other components (driver, etc) from the latest 2.5.x build.

Sorry, the driver must also be used attached (not from the latest 2.5.x build).
#9043
Posted: 02/25/2009 15:09:15
by Sid Schipper (Standard support level)
Joined: 03/14/2008
Posts: 285

OK, I verified that the driver and the helper dlls were all installed correctly. Things are working better than before, but there is still a puzzling issue that I'd like to resolve.

In order to resolve this issue I think I need to explain the way my application works a little more. The application runs as a Windows Service that gets automatically started upon rebooting the system. There is also a GUI program that a user can run to communicate with the service. The GUI program uses named pipes for that communication.

The GUI program allows a user to configure the virtual drives that he wants to mount so that he gets the correct connections to my database system. The GUI program keeps those configurations in the Windows registry. One of the configuration parameters that the user can set is "Reconnect at login" and if they set that value to TRUE then the service, when it starts automatically, will mount that drive. The user also has the ability to mount a drive manually through the GUI program, but when they do that the GUI program just sends a message to the service and the service is the one that actually mounts the drive.

So, having explained that, let me try to explain the problem I am still having. When my service starts, if there are any drives that are set to reconnect at login, the service mounts them and I see them in Windows Explorer and I can unmount them and remount them and everything seems to work correctly the way I would want it to.

On the other hand, if I try to manually mount a different drive from the GUI program, I run into those same problems we were seeing previously, that is, the drive does not show up in Windows Explorer but the share does show up in "Map Network Drive", etc. (see all of my previous forum entries).

It seems like mounting a network drive only works correctly if it is done upon boot-up of the Windows machine. Is that the way it is supposed to work?

I am certain that I have the right driver and dlls this time. I looked in C:\Windows\system32 and the VSMntNtf.dll and the VSNetRdr.dll matched both in size and date the ones you sent me. I also looked in C:\Windows\system32\drivers and the cbfs.sys file also matched. I also ran the GetDriverStatus program from the CbFs library and it returned to me the version number as 0.0.0.1 and the ss_struct.dwCurrentState as "SERVICE_RUNNING", which I believe means that everything is OK with the driver.

So, any thoughts on this issue?
#9044
Posted: 02/25/2009 15:28:16
by Sid Schipper (Standard support level)
Joined: 03/14/2008
Posts: 285

I have a feeling that the VSMntNtf.dll that I am using may be an old one. Let me fix that and I'll get back to you.
#9046
Posted: 02/25/2009 15:50:41
by Volodymyr Zinin (EldoS Corp.)

Could you perform the following:
Manually mount the _global_ type of network mounting point from your nt-service (for example "s:;P125252;Srb_s"). Then run WinObj program (download it from here: http://technet.microsoft.com/en-us/sy...96657.aspx ) and check whether a symbolic link with the name "s:" exists in the folder with name "GLOBAL??".
If so, then is its destination the same as the specified in the attached screenshot?
Thanks.


#9047
Posted: 02/25/2009 16:02:26
by Volodymyr Zinin (EldoS Corp.)

Also please check does VSMntNtf.dll exist in the Explorer.exe address space for the session where the mounting point is created?
You can do it for example by means of Process Explorer (http://technet.microsoft.com/en-us/sy...96653.aspx ). Either use its menu "Find" or "View"->"Show lower pane" plus "View"->"Lower Pane View"->"DLLs".
Thanks.
#9048
Posted: 02/25/2009 17:05:20
by Sid Schipper (Standard support level)
Joined: 03/14/2008
Posts: 285

The symbolic link does exist and looks exactly like your screen shot except that in my case the s for the drive letter is a capital S, I don't think that makes any difference.

You may have hit something with your second message. When I run Process Explorer I cannot find the VSMntNtf.dll or the VSNetRdr.dll in the address space of the process that creates the mounting point. How do those dlls get loaded? Is it part of the CreateStorage function?

Anyway, I think if we can figure out why those dlls are not being loaded then we may have a solution to the problem. Let me know what you think.
#9049
Posted: 02/26/2009 01:30:55
by Volodymyr Zinin (EldoS Corp.)

Quote
Sid Schipper wrote:
You may have hit something with your second message. When I run Process Explorer I cannot find the VSMntNtf.dll or the VSNetRdr.dll in the address space of the process that creates the mounting point...

It doesn't have to be there. Look for it in the Explorer.exe address space for the session where the mounting point is created.
Also by EldoS: MsgConnect
Cross-platform protocol-independent communication framework for building peer-to-peer and client-server applications and middleware components.

Reply

Statistics

Topic viewed 34242 times

Number of guests: 1, registered members: 0, in total hidden: 0




|

Back to top

As of July 15, 2016 EldoS Corporation will operate as a division of /n software inc. For more information, please read the announcement.

Got it!