All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unreleased - 1.0.3.1000
- FUSE - Add libfuse-compatible pkg-config
- Mirror - Add
DOKAN_OPTION_FILELOCK_USER_MODEoption with/f
- FUSE - Use pkg-config for building mirror
- Kernel - Many improvement allocation stack and heap
- Kernel - Enable PAGED_CODE for
DokanCheckShareAccess - Mirror - Return empty SACL if mirror doesn't have SeSecurityPrivilege
- Library - Use DeleteMountPoint for removing reparse point instead of
DeleteVolumeMountPoint - Library - Remove Redundant control flow jump
- Driver - Less wide locking
- Kernel - Align security descriptor to 4-byte boundary in
DokanDispatchSetSecurity - Library - Fix dokan context leak when CreateFile fail
- Kernel - Fix BSOD. When drive is started using n option and procmon is attached the rename of files in the root folder is not possible
- Kernel - Relative path rename
- Library - Write Set correctly the userland NtStatus
1.0.1.1000 - 2016-11-04
- Library -
DokanMapStandardToGenericAccess- ConvertIRP_MJ_CREATEDesiredAccess to generic rights.
- Driver - Use atomic operations for FCB and CCB flags instead of locks.
- Update Windows SDK to 10.0.14393
- Library - Call now
DeleteFileandDeleteDirectorywithDeleteOnCloseset at a delete request OR canceled. - Driver - Double check that the returned security descriptor is valid before returning success on QuerySecurity.
- Installer - Enable dev tools by default.
- Driver - Return
STATUS_FILE_LOCKED_WITH_ONLY_READERSduringPreAcquireForSectionSynchronizationwhen locked only with readers. - Mirror - Open handle when
GetFileInformationrequested after cleanup. - Kernel - Remove FCB
ResourceandMainResource. Use FCB HeaderResourceinstead allocated with LookasideList.
- Driver -
CcPurgeCacheSectioncould cause deadlock when FCB was locked in the same time. - Driver - Deadlock on related FCB.
- FUSE - Race condition in Dokan FUSE.
- Driver - BSOD issue related to filesystem mount on Windows 10 build 14936.
- Driver - Unlock FCB during
FsRtlOplockBreakHto let other request Lock FCB. - FUSE - Set correctly Authenticated Users rights (Explorer menu context).
- Mirror - Reject when trying to open a file as a directory.
- Driver - Return correct status for
FSCTL_FILESYSTEM_GET_STATISTICS- Can now net share on Windows Server 2012 R2
1.0.0.5000 - 2016-09-20
- MAJOR version to binary name
- Resource information to library with full dokan version
- Installer - Move to WiX toolset
- Library - DokanOption to mount the drive on current session only
- FUSE - Export utils fonctions
- FUSE -
daemon_timeout=<milisec>, background and network option parameter as options. - Library - Notify drive arrival/removal
- Driver -
dokan.infto solution -.cabfile is now build and embedded with installer - FUSE Cygwin / Msys2 binaries in installer (optional)
- FUSE Cygwin mirror as example
- Driver - log for unknown
IOCTL_STORAGE_QUERY_PROPERTY - Mirror - Use control handler function to gracefully close on Ctrl+C
- FUSE - handle
SetAllocationSize - Installer - Environement variable to dokan path:
DokanLibrary1/DokanLibrary1_LibraryPath_x64/DokanLibrary1_LibraryPath_x86 - Dokan NP - Totally new Dokan network provider
- Driver - Oplock implementation
- Logo Dokan in VSIX
- Library - Parameters on
DokanGetMountPointListto only retrieve instances with UNC - Mirror -
MirrorDokanGetDiskFreeSpaceas example - Driver - Handle
FileFsLabelInformation(Rename label device name) - Library - Handle
GetFileSecuritycallbacks for directories. - Library - Default
QueryVolumeInformationfile system name - Use WinFSTest as test suits
- Library - Auto add current and parent folder in
FindFilesrequest when missing - Installer -
Install development filesoption at installations time - Installer - NET 4.0 in bundles
- Library -
DokanNtStatusFromWin32helper - Library -
FileDispositionInformationcheck attributeFILE_ATTRIBUTE_READONLY - Driver -
SL_OPEN_TARGET_DIRECTORYis now handle directly by the driver - A website with the documentation.
- Support PagingIO
- FUSE - Use FUSE-compatible dir-hierarchy
- Installer - Update redistributable link to VS Update 2
- Installer - Add
dokan.dllto install folder - Installer - Move
dokanfuse.dllto install folder - Installer - Destination folder have now the dokan version in the name
- Sign binary and installer with SHA1 & SHA2
- Library - Call FindFiles if FindFilesWithPattern returns
STATUS_NOT_IMPLEMENTED - Library - Disable network device when mount point folder is specified.
- Dokanctl - Register
dokannp dllfrom Dokan Library install instead of sys32. - FUSE - use
_WIN32in FUSE wrapper instead ofWIN32define - Driver -
WriteFiledirectly returnSTATUS_SUCCESSwhen there is nothing to write - Library - When a delete fail, we now request parent folder if we can delete child
- Library -
DokanRemoveMountPointExhas now a Safe option (force during remove if safe) - Dokanctl - No longer need admin permission for listing mount point, show usage and print version
- Mirror - Update show usage
- Driver - Use LookasideLists for DokanCCB and DokanFCB
- FUSE - Improve and fix debug logs
- FUSE - Add cmake-install target
- FUSE - Make utils.h usable under C
- Driver - Support hibernation mode
- Driver- BSOD during unmounts -> Restore
DokanStopCheckThread - Mirror - Use
NTFSas default file system name - Driver - Application using
SocketConnectionin dokan device - Library -
QueryServiceStatusreturn value check - FUSE - Fix directory deleting if opendir is not hooked
- Driver - Start failure on Win7 x86
- Mirror - Fix all issues reported by WinFSTest
- Driver - BSOD: network drive fileObject has no Vpb
- Library - Null-terminate string in unmount
- Library - Capitalization of
windows.hinclude &CMakeListsfile name - FUSE - mount that was calling destroy ops
- Driver -
DokanGetFCBwas not case sensitive - FUSE - Force getattr since Windows use readdir information compared to libfuse behavior
- FUSE - Call statfs with the root directory /
- FUSE - Wrong opt default value
- Driver - Save
DOKAN_DELETE_ON_CLOSEin CCB and restore CCB flag during cleanup - Mirror - Replace main return -1 by
EXIT_FAILURE - Mirror - Low and high param inversions for Un/LockFile
- Installer - Correctly check KB3033929 is installed on Win7
- Driver - Notify correctly when a file is removed with
FILE_FLAG_DELETE_ON_CLOSE
- Dokanctl - unused /f option during unmount
- Library -
SetLastError(ERROR_ALREADY_EXISTS);in CreateFile logic by directly returnSTATUS_OBJECT_NAME_COLLISION
0.8.0 - 2015-12-10
- Installer - Embed VC++ redistributable in DokanInstall_X.X.X_redist.exe
- Alternative Streams enumeration support #48
IOCTL_DISK_GET_DRIVE_GEOMETRY_EXandIOCTL_STORAGE_GET_MEDIA_TYPES_EXdisk deviceIOCTLhttps://github.com/dokan-dev/dokany/commit/08b09a3910dbac0e902a81ad9e9ae1a06d4a6d90- The timeout per device has been implemented. The DokanOptions has a new property Timeout (Milliseconds) #55
- Installer - include PDB files
- Coverity
- FUSE - readonly flag dokan-dev#90
- Write protect device option dokan-dev#105
- Mounted DokanOperation is now called when device is mounted
- Library - Logs in DispatchQueryInformation and DokanPrintNTStatus
- Installer - Move dokan include and lib files
- Driver - Central error handling #56
- Library - Return type Dokan API to NTSTATUS #65
- Installer - Move install-pdb to the main installer as an option
- Move to WDK 10 & Visual Studio 2015
- Move to clang-format code style LLVM
CreateFileis moved to CreateFileW dokan-dev#91- Library -
CreateDirectory&OpenDirectoryhave been merged with CreateFileW - FUSE - Use struct stat from cygwin as struct
FUSE_STATfor better compatibility dokan-dev#88 - Dokanctl - Driver path is now resolved from %SystemRoot% dokan-dev#104
- FUSE - Library is now a dynamic library (was static)
- Dokanctl - update showusage
- Library - Unmount has been renamed as Unmounted and are now called when device is unmounted #117
- Mirror - Ensure to have
SE_SECURITY_NAMEprivilege and fixGetFileSecurity - FUSE - get_disk_free_space() return error changed #114
- Library - Use _malloca() for debug strings to avoid buffer overflows dokan-dev#84
- Driver -
CreateFilewith empty FileName - Driver - BSOD in security #55
- Prevent thread termination if not enough resources #55
- Mirror - cannot delete empty directory #54
- Installer - Clean the register after uninstall
- Installer - Remove the driver after reboot
- Installer - Move dokan include and lib files 1f94c875bc90c339b1f7bb2e57dcbac514e0a6bc
- Library -
DokanMainDeadlock with Network device #81 - Library -
DokanUnmountfailing to unmount a drive dokan-dev#79 - Driver - Remove potential memory leak in
DokanCreateDiskDeviceon allocation failure dokan-dev#108 - Miror - Wrong success when
CreateFilewas called to open directory for delete - Library -
CreateFilenow correctly set last-error code toERROR_ALREADY_EXISTSwhen open success withCREATE_ALWAYSandOPEN_ALWAYS(see mirror)
- Library - Keep Alive option - Enabled as default
- Driver - Deadcode in
IRP_MJ_SHUTDOWN
0.7.4 - 2015-08-21
- Fuse include to installer #37
- Doc updated #41 & Fix grammar #38
- #26
- MoveFileEx #39
0.7.2 - 2015-05-12
- AppVeyor CI build
- Code style standardization
DokanUnmountdriver letter name (#14)- Bad Pool BSOD on DokanGetFCB function (#11 / https://code.google.com/p/dokan/issues/detail?id=229)
- DbgPrint message on
CreateDispositionfunction (#13)
0.7.1 - 2015-02-04
- Dokan.lib exported functions name
- Missing
KeEnterCriticalRegionfunction call in sys/fileinfo.c
- Japan readme
0.7.0 - 2015-01-30
- Extended drive letters usage range from D - Z to B - Z (BenjaminKim/dokanx#13)
- Moved to WDK8.1 with Visual Studio 2013 support
- Improved DotNet wrapper with nullable datetime
- Fixed dokan_mirror offset processing on large files (BenjaminKim/dokanx#18)
- Build warnings
- Dokan installer
- PAGED_CODE declarations
0.6.0 - 2014-12-10
Latest Dokan version from Hiroki Asakawa. http://dokan-dev.net/en