EldoS | Feel safer!

Software components for data protection, secure storage and transfer

CbFS - case sensitive question

Also by EldoS: BizCrypto
Components for BizTalk® and SQL Server® Integration Services that let you securely store and transfer information in your business automation solutions.
#31809
Posted: 01/05/2015 06:37:18
by Ewald Einwanger (Standard support level)
Joined: 11/03/2014
Posts: 3

Hi,

we are using CbFS 5.1.153.56 and C++ library on Windows 8.1 Enterprise.
Our software can operate either using drive letter (option #1) or UNC path (option #2).

When our software starts we receive CbFsEnumerateDirectory request and report following files:
...
MyFile1.txt
...

afterwards we receive CbFsGetFileInfo request.
Mountpoint is created as:

AddMountingPoint(cMountPoint, CBFS_SYMLINK_MOUNT_MANAGER, NULL)

If program is using option #1 then we get request:
CbFsGetFileInfo (MyFile1.txt)

if we are using option #2 we get request:
CbFsGetFileInfo (MYFILE1.TXT)

We tried several possibilities:
SetCaseSensitiveFileNames
SetShortFileNameSupport

But none of these seems to have any impact.

Our software is case sensitive (we want to present UNIX filesystem) and we would like CbFsGetFileInfo to use the same file name as reported in CbFsEnumerateDirectory.

Is this something Eldos can control or is it controlled by windows ?

Are we doing something wrong ?
#31810
Posted: 01/05/2015 07:12:08
by Volodymyr Zinin (EldoS Corp.)

It's Windows which "controls" it. Perhaps the Windows code which supports network file systems (it's called MUP or Multiple UNC provider) doesn't support case sensitivity.
In any case set SetCaseSensitiveFileNames to TRUE and return RealFileName from the CbFsGetFileInfo callback. At least it helps CBFS to use internally the correct file names and to report to Windows that case sensitive file names are used.
Also try to set file name as NTFS.
#31813
Posted: 01/05/2015 12:08:55
by Ewald Einwanger (Standard support level)
Joined: 11/03/2014
Posts: 3

Hi Volodymyr,

thanks. This helped. I'd recommend that you add this info to help: CallbackFileSystem.CaseSensitiveFileNames property section.

But how reliable is this ? Is it just coincidence that it works ?
Is there a statement somewhere that it will always behave this way ?
#31814
Posted: 01/05/2015 12:34:24
by Ewald Einwanger (Standard support level)
Joined: 11/03/2014
Posts: 3

I was celebrating too early. Setting SetFileSystemName to NTFS does not resolve the issue.
#31819
Posted: 01/06/2015 01:37:47
by Volodymyr Zinin (EldoS Corp.)

As I wrote above it is the system which decides sometimes to use non case sensitive names. One more idea - in order to have case sensitivity enabled in the system the registry value "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\obcaseinsensitive" must be set to 0 and the system is rebooted. But still it works only for UNIX based applications as well as applications which use ZwCreateFile/ZwOpenFile without the flag OBJ_CASE_INSENSITIVE.

In any case, as I wrote above, set SetCaseSensitiveFileNames to TRUE and return RealFileName from the CbFsGetFileInfo callback.
Also by EldoS: CallbackRegistry
A component to monitor and control Windows registry access and create virtual registry keys.

Reply

Statistics

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