EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Per Session Mounting points

Also by EldoS: Rethync
The cross-platform framework that simplifies synchronizing data between mobile and desktop applications and servers and cloud storages
Posted: 01/05/2012 23:20:57
by Anil Nagubadi (Basic support level)
Joined: 01/05/2012
Posts: 1

Dear Eldos,
How do I create a mount point which is invisible to other sessions except for the session I intend, in a Win 7 TS server environment. I am using the latest version CBFS 3.2.102
The documentation indicates that I could use AddMountingPoint with flag CBFS_SYMLINK_LOCAL and setting AuthenticationID (LUID). I have tried it to only see it mapped globally, visible in all sessions or mapped in the session where the AddMountingPoint is called.
Following is my methodologies and environment:
1. Server is Windows 2008 R2 Server 64 bit
2. The usermode process which calls AddMountingPoint is running as a Local Administrator in console session. It has a named pipe server waiting for requests.
3. When a user logs into a Session, he would launch a client application which send a mount request to named pipe server running in console session.
4. The named pipe server impersonates the client calls GetTokenInformation for TokenGroupsAndPrivileges and uses its AuthenticationId as LUID. I have verified the LUID is correct... as other network drives I map in that session show up under this LUID in WinObj.exe sysinternals tool.
5. Following parameters are formed for calling AddMountingPoint
AddMountingPoint("N:" \* the drive is not previously mapped in the current session */,

The result for the above parameters, is that the drive is mapped only in the session of process which calls AddMountingPoint. If I add the flag CBFS_SYMLINK_SIMPLE, same result as above. But if add CBFS_SYMLINK_MOUNT_MANAGER, it is mapped in \Global, globally in all sessions.
I have also done a few experiments with CBFS_SYMLINK_NETWORK and using a mount string "N:;someserver;someshare", but even that maps it globally.

Can you see what I am doing wrong with my flags or what I am doing wrong with my MountPoint string. Could you please help with the correct flags and syntax? Also, if there is anything wrong with my procedures above please let me know. Should my process be running as a Windows Service?

There is supposed to be an EX version of AddMountingPoint accord. to documentation, which I wanted to try the same with, but the code wouldn't compile. I get the following error: error CS1061: 'CallbackFS.CallbackFileSystem' does not contain a definition for 'AddMountingPointEx' and no extension method 'AddMountingPointEx' accepting a first argument of type 'CallbackFS.CallbackFileSystem' could be found (are you missing a using directive or an assembly reference?)
Posted: 01/06/2012 09:41:49
by Volodymyr Zinin (EldoS Corp.)

The following combinations (CBFS_SYMLINK_SIMPLE | CBFS_SYMLINK_LOCAL) or (CBFS_SYMLINK_NETWORK | CBFS_SYMLINK_LOCAL) create local mounting point, which is visible only for specified session. The session is specified by the use of the AuthenticationId parameter. If it's set to NULL then the current caller session is used.
If the flag CBFS_SYMLINK_MOUNT_MANAGER is specified then the created mounting point is always global. This is so because in this case not CallbackFS but Windows itself creates the mounting point and it always creates it as global.
Posted: 01/06/2012 10:16:46
by Eugene Mayevski (EldoS Corp.)

I am moving this question to HelpDesk for investigation.

Sincerely yours
Eugene Mayevski



Topic viewed 1598 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!