The following trace is the result of trying to copy the 3 MB file "BouncyCastle.1.7.0.nupkg" from a different drive into a Dokan.Net mirror volume (Mirror sample, drive D: mapped as R:, standard settings with 5 threads, Dokan 0.7.4 x64 on Windows 8.1 x64).
There is an epic failure at the end of the call sequence when Dokan tries to set the file date while the target file is still in use by another operation.
There is also at least one curious thread interference in the partial call sequence
D:\dokan-dotnet\sample\DokanNetMirror\bin\Debug>DokanNetMirror.exe
OpenDirectoryProxy :
Context
OpenDirectoryProxy : \ Return : Success
GetVolumeInformationProxy
Context
VolumeNameBuffer DOKAN
FileSystemNameBuffer DOKAN
VolumeSerialNumber 21083178
FileSystemFlags CaseSensitiveSearch, CasePreservedNames, UnicodeOnDisk, PersistentAcls, SupportsRemoteStorage
GetVolumeInformationProxy Return : Success
CleanupProxy :
Context
CleanupProxy : \ Return : Success
CloseFileProxy :
Context
CloseFileProxy : \ Return : Success
CreateFileProxy : \autorun.inf
CreationDisposition Open
FileAccess ReadAttributes
FileShare ReadWrite, Delete
FileOptions None
FileAttributes 0
Context
CreateFileProxy : \autorun.inf Return : FileNotFound
CreateFileProxy : \autorun.inf
CreationDisposition Open
FileAccess ReadData, ReadExtendedAttributes, ReadAttributes, ReadPermissions, Synchronize
FileShare ReadWrite, Delete
FileOptions None
FileAttributes 0
Context
CreateFileProxy : \autorun.inf Return : FileNotFound
CreateFileProxy : \autorun.inf
CreationDisposition Open
FileAccess ReadData, ReadExtendedAttributes, ReadAttributes, ReadPermissions, Synchronize
FileShare ReadWrite, Delete
FileOptions None
FileAttributes 0
Context
CreateFileProxy : \autorun.inf Return : FileNotFound
CreateFileProxy :
CreationDisposition Open
FileAccess ReadAttributes
FileShare ReadWrite, Delete
FileOptions None
FileAttributes 0
Context
CreateFileProxy : \ Return : Success
GetFileInformationProxy :
Context Object
FileName
Attributes Hidden, System, Directory
CreationTime 08.10.2012 23:11:19
LastAccessTime 04.09.2015 20:53:03
LastWriteTime 04.09.2015 20:53:03
Length 0
GetFileInformationProxy : \ Return : Success
CleanupProxy :
Context Object
CleanupProxy : \ Return : Success
CloseFileProxy :
Context
CloseFileProxy : \ Return : Success
CreateFileProxy : \AutoRun.inf
CreationDisposition Open
FileAccess ReadAttributes
FileShare ReadWrite, Delete
FileOptions None
FileAttributes 0
Context
CreateFileProxy : \AutoRun.inf Return : FileNotFound
OpenDirectoryProxy :
Context
OpenDirectoryProxy : \ Return : Success
GetVolumeInformationProxy
Context
VolumeNameBuffer DOKAN
FileSystemNameBuffer DOKAN
VolumeSerialNumber 21083178
FileSystemFlags CaseSensitiveSearch, CasePreservedNames, UnicodeOnDisk, PersistentAcls, SupportsRemoteStorage
GetVolumeInformationProxy Return : Success
CleanupProxy :
Context
CleanupProxy : \ Return : Success
CloseFileProxy :
Context
CloseFileProxy : \ Return : Success
CreateFileProxy : \Temp\Source
CreationDisposition Open
FileAccess ReadAttributes
FileShare ReadWrite, Delete
FileOptions None
FileAttributes 0
Context
CreateFileProxy : \Temp\Source Return : Success
GetFileInformationProxy : \Temp\Source
Context Object
FileName \Temp\Source
Attributes Directory
CreationTime 30.05.2014 21:33:09
LastAccessTime 04.09.2015 22:12:28
LastWriteTime 04.09.2015 22:12:28
Length 0
GetFileInformationProxy : \Temp\Source Return : Success
CleanupProxy : \Temp\Source
Context Object
CleanupProxy : \Temp\Source Return : Success
CloseFileProxy : \Temp\Source
CreateFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
CreationDisposition Open
FileAccess ReadData, ReadExtendedAttributes, ReadAttributes, ReadPermissions, Synchronize
FileShare Read
Context
FileOptions None
FileAttributes Normal
Context
CreateFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : FileNotFound
CloseFileProxy : \Temp\Source Return : Success
CreateFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
CreationDisposition Open
FileAccess ReadAttributes
FileShare ReadWrite, Delete
FileOptions None
FileAttributes 0
Context
CreateFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : FileNotFound
CreateFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
CreationDisposition Create
FileAccess ReadData, WriteData, AppendData, ReadExtendedAttributes, WriteExtendedAttributes, ReadAttributes, WriteAttributes, Delete, Rea
dPermissions, ChangePermissions, Synchronize
FileShare None
FileOptions None
FileAttributes Archive
Context
CreateFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : Success
GetVolumeInformationProxy
Context
VolumeNameBuffer DOKAN
FileSystemNameBuffer DOKAN
VolumeSerialNumber 21083178
FileSystemFlags CaseSensitiveSearch, CasePreservedNames, UnicodeOnDisk, PersistentAcls, SupportsRemoteStorage
GetVolumeInformationProxy Return : Success
GetFileInformationProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
Context FileStream
FileName \Temp\Source\BouncyCastle.1.7.0.nupkg
Attributes Archive
CreationTime 04.09.2015 22:12:47
LastAccessTime 04.09.2015 22:12:47
LastWriteTime 04.09.2015 22:12:47
Length 0
GetFileInformationProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : Success
SetEndOfFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
ByteOffset 3234973
Context FileStream
SetEndOfFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : Success
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
NumberOfBytesToWrite 524288
Offset 0
Context FileStream
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : Success NumberOfBytesWritten : 524288
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
NumberOfBytesToWrite 524288
Offset 524288
Context FileStream
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : Success NumberOfBytesWritten : 524288
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
NumberOfBytesToWrite 524288
Offset 1048576
Context FileStream
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : Success NumberOfBytesWritten : 524288
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
NumberOfBytesToWrite 524288
Offset 1572864
Context FileStream
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : Success NumberOfBytesWritten : 524288
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
NumberOfBytesToWrite 524288
Offset 2097152
Context FileStream
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : Success NumberOfBytesWritten : 524288
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
NumberOfBytesToWrite 524288
Offset 2621440
Context FileStream
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : Success NumberOfBytesWritten : 524288
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
NumberOfBytesToWrite 89245
Offset 3145728
Context FileStream
WriteFileProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : Success NumberOfBytesWritten : 89245
SetFileAttributesProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
Attributes 0
Context FileStream
SetFileAttributesProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Return : Success
SetFileTimeProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg
CreateTime
AccessTime
WriteTime 12.08.2015 21:33:48
Context FileStream
SetFileTimeProxy : \Temp\Source\BouncyCastle.1.7.0.nupkg Throw : The process cannot access the file "D:\Temp\Source\BouncyCastle.1.7.0.nupkg" because it is being used by another process.
Unhandled Exception: System.IO.IOException: The process cannot access the file "D:\Temp\Source\BouncyCastle.1.7.0.nupkg" because it is being used by another process.
in System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
in System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, Fi
leOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
in System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
in System.IO.File.OpenFile(String path, FileAccess access, SafeFileHandle& handle)
in System.IO.File.SetLastWriteTimeUtc(String path, DateTime lastWriteTimeUtc)
in System.IO.File.SetLastWriteTime(String path, DateTime lastWriteTime)
in DokanNetMirror.Mirror.SetFileTime(String fileName, Nullable1 creationTime, Nullable
1 lastAccessTime, Nullable`1 lastWriteTime, DokanFileInfo
info) in D:\dokan-dotnet\sample\DokanNetMirror\Mirror.cs:Line 296.
in DokanNet.DokanOperationProxy.SetFileTimeProxy(String rawFileName, FILETIME& rawCreationTime, FILETIME& rawLastAccessTime, FILETIME& rawLastWrit
eTime, DokanFileInfo rawFileInfo) in D:\dokan-dotnet\DokanNet\DokanOperationProxy.cs:Line 668.