EldoS | Feel safer!

Software components for data protection, secure storage and transfer

Migrating from Dokan to Callback File System


Sequence of calls:


Dokan:


  1. Install the driver somehow

  2. Fill DokanOptions

  3. Fill DokanOperations

  4. Call DokanMain


Callback File System:


  1. Call SetRegistrationKey() method to set the license key

  2. (optionally, if not done yet) Install the driver using Install() method

  3. Create a virtual disk device using CreateStorage() method

  4. Add one or more mounting points (these can be drive letters or UNC paths) using AddMountingPoint() method. The same disk can be mapped to one or more drive letters and/or UNC paths (for example, for different user sessions)

  5. Call MountMedia() method to insert the disk

  6. Use the disk

  7. Call UnmountMedia() to remove the disk

  8. Call DeleteStorage() to delete the disk device from the system


API correspondence:


Dokan

Callback File System

Missing / not supported

InstallIcon() and SetIcon() methods to set custom disk icons for Explorer

Missing / not supported

AddGrantedProcess() method and ProcessRestrictionsEnabled property to restrict access to the disk to only certain processes

Missing / not supported

GetOirinatorProcessId() and GetOriginatorToken() methods for security control over access to the disk

Missing / not supported

NotifyDirectoryChange() method to tell the OS to re-read folder contents

Missing / not supported

SetFileSystemName() method to tell the OS what kind of file system we emulate

Missing / not supported

StorageType and StorageCharacteristics properties to fine-tune disk behavior

Missing / not supported

ShortFileNameSupport property to enable / disable support of short file names

Missing / not supported

OnEnumerateFileStreams callback / event to enumerate alternate streams of the file

Missing / not supported

OnGetFilePathById callback / event to manage files by ID (instead of paths and names)

Missing / not supported

OnGetFileSecurity and OnSetFileSecurity callbacks / events to get and set file security attributes

Missing / not supported

CBFS_SYMLINK_MOUNT_MANAGER flag of AddMountingPoint() method to create a disk, visible in Disk Manager

Missing / not supported

CBFS_SYMLINK_LOCAL flag of AddMountingPoint() method to create a disk, visible only in specific user session

Missing / not supported

UNC path instead of drive letter as a parameter to AddMountingPoint() method

Missing / not supported

Folder on existing NTFS drive instead of drive letter as a parameter to AddMountingPoint() method



DOKAN_OPERATIONS::CreateFile

OnCreateFile or OnOpenFile callback / event

DOKAN_OPERATIONS::CreateDirectory

OnCreateFile callback / event

DOKAN_OPERATIONS::OpenDirectory

OnOpenFile callback / event

DOKAN_OPERATIONS::Cleanup

DOKAN_OPERATIONS::CloseFile

OnCloseFile callback / event

DOKAN_OPERATIONS::ReadFile

OnReadFile callback / event

DOKAN_OPERATIONS::WriteFile

OnWriteFile callback / event

DOKAN_OPERATIONS::FlushFileBuffers

OnFlushFile callback / event

DOKAN_OPERATIONS::GetFileInformation

OnGetFileInfo callback / event

DOKAN_OPERATIONS::FindFiles

DOKAN_OPERATIONS::FindFilesWithPattern


OnEnumerateDirectory callback / event

DOKAN_OPERATIONS::SetFileAttributes

DOKAN_OPERATIONS::SetFileTime

OnSetFileAttributes callback / event

DOKAN_OPERATIONS::DeleteFile

DOKAN_OPERATIONS::DeleteDirectory

OnCanFileBeDeleted callback / event

OnDeleteFile callback / event

DOKAN_OPERATIONS::MoveFile

OnRenameOrMove callback / event

DOKAN_OPERATIONS::SetEndOfFile

OnSetEndOfFile callback / event

DOKAN_OPERATIONS::SetAllocationSize

OnSetAllocationSize callback / event

DOKAN_OPERATIONS::LockFile

DOKAN_OPERATIONS::UnlockFile

Handled internally by Callback File System

DOKAN_OPERATIONS::GetDiskFreeSpace

OnGetVolumeSize callback / event

DOKAN_OPERATIONS::GetVolumeInformation

OnGetVolumeId callback / event

OnGetVolumeLabel callback / event



DOKAN_FILE_INFO::Context

UserData parameter of appropriate callbacks



DokanOptions::Options

Flags parameter of AddMountingPoint() method

DokanOptions::DriveLetter

MountingPoint parameter of AddMountingPoint() method

DokanOptions::ThreadCount

ThreadPoolSize property


|

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!