dokan-dev / dokan-dotnet

Dokan DotNet Wrapper
http://dokan-dev.github.io
MIT License
462 stars 116 forks source link

[Help wanted] Random unmounts after updating from 1.5.0.0 to 2.0.5.1 #325

Closed pj-r closed 1 year ago

pj-r commented 1 year ago

Would someone have hints how to investigate the issue of random unmount that started to happen after updating the driver to latest?

Wondering if this could be the keyword or phrase from logs: Starting FCB garbage collector with 2000 ms interval. ( But all the requests are well under the defined 30sek timeout. More like under 1sek in worst case. )

Enabled flags for the driver: var options = DokanOptions.RemovableDrive | DokanOptions.EnableNotificationAPI | DokanOptions.CurrentSession | DokanOptions.DebugMode (happens also without Debug mode enabled)

Initialization is made by:

.ConfigureOptions((instanceOptions) =>
{
  instanceOptions.Options = options;
  instanceOptions.SingleThread = false;
  instanceOptions.TimeOut = TimeSpan.FromSeconds(30);
  instanceOptions.MountPoint = this.MountPath;
});

So far this has happened when I copy/paste bunch of files and folders from native drive to a dokan mounted drive what then gets unmounted randomly.

There is some logs from event viewer:

## Mount
Entered event start.
Finding mount entry; lockGlobal = 0; mount point = \DosDevices\Z:\.
No mount entry found.
Creating disk device; mount point = Z:\; mount ID = 9l
disk device name: "\Device\Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}"; symbolic link name: "\DosDevices\Global\Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}"; mount point: "\DosDevices\Z:"; type: 8
SymbolicLink: "\DosDevices\Global\Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}" -> "\Device\Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}" created
Inserted new mount entry.
Event start using mount ID: 9; device name: \Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}.
Mounting volume using MountPoint "\DosDevices\Z:" device "\Device\Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}"
Finding mount entry; lockGlobal = 1; mount point = .
Found entry with matching device name: \Device\Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}
Mount entry found: \DosDevices\Z: -> \Device\Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}
Starting FCB garbage collector with 2000 ms interval.
Not using Mount Manager.
Mounting successfully done.
Finished event start with status 1 and flags: 0
Opened file with user mode dispatch blocked: "\__drive_fs_keepalive"
Opened keepalive file from process 10244.
Activating keepalive handle from process 10244.
Opened file with user mode dispatch blocked: "\drive_fs_notification"

## Random dismount happens
Finding mount entry; lockGlobal = 1; mount point = \DosDevices\Z:.
Found entry with matching mount point.
Mount entry found: \DosDevices\Z: -> \Device\Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}
Entered event release.
Starting unmount for device "\Device\Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}"
Stopping FCB garbage collector.
Cleaning up all change notification waiters.
Deleting device object.
Finding mount entry; lockGlobal = 1; mount point = .
Found entry with matching device name: \Device\Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}
Mount entry found: \DosDevices\Z: -> \Device\Volume{d6cc17c5-173c-4085-bce7-964f1e9f5de9}
Removing mount entry.
Deleting volume device object.
Finished deleting device.
Finished event release.
There is snip of the debug log just before the unmount happens

#### The log ``` [Debug] [FSDriver] - CreateFileProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - FileName project.ini [Debug] [FSDriver] - Attributes Normal [Debug] [FSDriver] - CreationTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastAccessTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastWriteTime 1.1.0001 0.00.00 [Debug] [FSDriver] - Length 0 [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - FileName project.ini [Debug] [FSDriver] - Attributes Normal [Debug] [FSDriver] - CreationTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastAccessTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastWriteTime 1.1.0001 0.00.00 [Debug] [FSDriver] - Length 0 [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - CreateFileProxy : \ [Debug] [FSDriver] - CreationDisposition Open [Debug] [FSDriver] - FileAccess Synchronize [Debug] [FSDriver] - FileShare ReadWrite [Debug] [FSDriver] - FileOptions None [Debug] [FSDriver] - FileAttributes 0 [Debug] [FSDriver] - Context {, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - CreateFileProxy : \ Return : Success [Debug] [FSDriver] - GetVolumeInformationProxy: [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - VolumeNameBuffer TestASD\testi09872\Kaikki [Debug] [FSDriver] - FileSystemNameBuffer NTFS [Debug] [FSDriver] - VolumeSerialNumber 2933762 [Debug] [FSDriver] - FileSystemFlags CasePreservedNames, UnicodeOnDisk, SupportsRemoteStorage [Debug] [FSDriver] - MaximumComponentLength 256 [Debug] [FSDriver] - GetVolumeInformationProxy Return : Success [Debug] [FSDriver] - GetVolumeInformationProxy: [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - VolumeNameBuffer TestASD\testi09872\Kaikki [Debug] [FSDriver] - FileSystemNameBuffer NTFS [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini [Debug] [FSDriver] - VolumeSerialNumber 2933762 [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - FileSystemFlags CasePreservedNames, UnicodeOnDisk, SupportsRemoteStorage [Debug] [FSDriver] - FileName project.ini [Debug] [FSDriver] - MaximumComponentLength 256 [Debug] [FSDriver] - Attributes Normal [Debug] [FSDriver] - GetVolumeInformationProxy Return : Success [Debug] [FSDriver] - CreationTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastAccessTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastWriteTime 1.1.0001 0.00.00 [Debug] [FSDriver] - Length 0 [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - CleanupProxy : \ [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - CleanupProxy : \ [Debug] [FSDriver] - CloseFileProxy : \ [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - CloseFileProxy : \ [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - FileName project.ini [Debug] [FSDriver] - Attributes Normal [Debug] [FSDriver] - CreationTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastAccessTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastWriteTime 1.1.0001 0.00.00 [Debug] [FSDriver] - Length 0 [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - FileName project.ini [Debug] [FSDriver] - Attributes Normal [Debug] [FSDriver] - CreationTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastAccessTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastWriteTime 1.1.0001 0.00.00 [Debug] [FSDriver] - Length 0 [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - GetVolumeInformationProxy: [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - VolumeNameBuffer TestASD\testi09872\Kaikki [Debug] [FSDriver] - FileSystemNameBuffer NTFS [Debug] [FSDriver] - VolumeSerialNumber 2933762 [Debug] [FSDriver] - FileSystemFlags CasePreservedNames, UnicodeOnDisk, SupportsRemoteStorage [Debug] [FSDriver] - MaximumComponentLength 256 [Debug] [FSDriver] - GetVolumeInformationProxy Return : Success [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - FileName project.ini [Debug] [FSDriver] - Attributes Normal [Debug] [FSDriver] - CreationTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastAccessTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastWriteTime 1.1.0001 0.00.00 [Debug] [FSDriver] - Length 0 [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - FileName project.ini [Debug] [FSDriver] - Attributes Normal [Debug] [FSDriver] - CreationTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastAccessTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastWriteTime 1.1.0001 0.00.00 [Debug] [FSDriver] - Length 0 [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - SetEndOfFileProxy : \Subfolder1\project.ini [Debug] [FSDriver] - ByteOffset 8240 [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - SetEndOfFileProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - GetVolumeInformationProxy: [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - VolumeNameBuffer TestASD\testi09872\Kaikki [Debug] [FSDriver] - FileSystemNameBuffer NTFS [Debug] [FSDriver] - VolumeSerialNumber 2933762 [Debug] [FSDriver] - FileSystemFlags CasePreservedNames, UnicodeOnDisk, SupportsRemoteStorage [Debug] [FSDriver] - MaximumComponentLength 256 [Debug] [FSDriver] - GetVolumeInformationProxy Return : Success [Debug] [FSDriver] - WriteFileProxy : \Subfolder1\project.ini [Debug] [FSDriver] - NumberOfBytesToWrite 8240 [Debug] [FSDriver] - Offset 0 [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, True, False} [Debug] [FSDriver] - Buffer size 8240 not power of 2 or too large, returning unpooled buffer. [Debug] [FSDriver] - -1 (size 8240) outside pool range, discarding buffer. [Debug] [FSDriver] - WriteFileProxy : \Subfolder1\project.ini Return : Success NumberOfBytesWritten : 8240 [Debug] [FSDriver] - SetFileAttributesProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Attributes 0 [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - SetFileAttributesProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - SetFileTimeProxy : \Subfolder1\project.ini [Debug] [FSDriver] - CreateTime [Debug] [FSDriver] - AccessTime [Debug] [FSDriver] - WriteTime 31.1.2023 7.45.16 [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - SetFileTimeProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - FileName project.ini [Debug] [FSDriver] - Attributes 0 [Debug] [FSDriver] - CreationTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastAccessTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastWriteTime 31.1.2023 7.45.16 [Debug] [FSDriver] - Length 8240 [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - FileName project.ini [Debug] [FSDriver] - Attributes 0 [Debug] [FSDriver] - CreationTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastAccessTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastWriteTime 31.1.2023 7.45.16 [Debug] [FSDriver] - Length 8240 [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - FileName project.ini [Debug] [FSDriver] - Attributes 0 [Debug] [FSDriver] - CreationTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastAccessTime 8.2.2023 19.06.37 [Debug] [FSDriver] - LastWriteTime 31.1.2023 7.45.16 [Debug] [FSDriver] - Length 8240 [Debug] [FSDriver] - GetFileInformationProxy : \Subfolder1\project.ini Return : Success [Debug] [FSDriver] - GetFileSecurityProxy : \Subfolder1\project.ini [Debug] [FSDriver] - FileSystemSecurity All [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - GetFileSecurityProxy : \Subfolder1\project.ini Return : NotImplemented [Debug] [FSDriver] - GetFileSecurityProxy : \Subfolder1\project.ini [Debug] [FSDriver] - FileSystemSecurity All [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - GetFileSecurityProxy : \Subfolder1\project.ini Return : NotImplemented [Debug] [FSDriver] - CleanupProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - CleanupProxy : \Subfolder1\project.ini [Debug] [FSDriver] - CloseFileProxy : \Subfolder1\project.ini [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.FileWriteContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - CreateFileProxy : \ [Debug] [FSDriver] - CreationDisposition Open [Debug] [FSDriver] - FileAccess ReadData, Synchronize [Debug] [FSDriver] - FileShare ReadWrite, Delete [Debug] [FSDriver] - FileOptions None [Debug] [FSDriver] - FileAttributes Normal [Debug] [FSDriver] - Context {, False, True, False, False, #9256, False, False} [Debug] [FSDriver] - CreateFileProxy : \ Return : Success [Debug] [FSDriver] - FindFilesWithPatternProxy : \ [Debug] [FSDriver] - rawSearchPattern LVI [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #9256, False, False} [Debug] [FSDriver] - FileName LVI [Debug] [FSDriver] - Attributes Directory [Debug] [FSDriver] - CreationTime 8.2.2023 19.06.23 [Debug] [FSDriver] - LastAccessTime 8.2.2023 19.06.23 [Debug] [FSDriver] - LastWriteTime 1.1.0001 0.00.00 [Debug] [FSDriver] - Length 0 [Debug] [FSDriver] - FindFilesWithPatternProxy : \ Return : Success [Debug] [FSDriver] - CleanupProxy : \ [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #4, False, False} [Debug] [FSDriver] - CleanupProxy : \ FileWriteContext(23)(project.ini): writer count now good 1 [Debug] [FSDriver] - CloseFileProxy : \ [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #9256, False, False} [Debug] [FSDriver] - CloseFileProxy : \ [Debug] [FSDriver] - CreateFileProxy : \Subfolder1 [Debug] [FSDriver] - CreationDisposition Open [Debug] [FSDriver] - FileAccess ReadAttributes, Synchronize [Debug] [FSDriver] - FileShare ReadWrite, Delete [Debug] [FSDriver] - FileOptions None [Debug] [FSDriver] - FileAttributes 0 [Debug] [FSDriver] - Context {, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - CreateFileProxy : \Subfolder1 Return : Success [Debug] [FSDriver] - CreateFileProxy : \ [Debug] [FSDriver] - CreationDisposition Open [Debug] [FSDriver] - CleanupProxy : \Subfolder1 [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - CleanupProxy : \Subfolder1 [Debug] [FSDriver] - FileAccess Synchronize [Debug] [FSDriver] - FileShare ReadWrite [Debug] [FSDriver] - FileOptions None [Debug] [FSDriver] - FileAttributes 0 [Debug] [FSDriver] - Context {, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - CreateFileProxy : \ Return : Success [Debug] [FSDriver] - GetVolumeInformationProxy: [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - VolumeNameBuffer TestASD\testi09872\Kaikki [Debug] [FSDriver] - FileSystemNameBuffer NTFS [Debug] [FSDriver] - VolumeSerialNumber 2933762 [Debug] [FSDriver] - FileSystemFlags CasePreservedNames, UnicodeOnDisk, SupportsRemoteStorage [Debug] [FSDriver] - MaximumComponentLength 256 [Debug] [FSDriver] - GetVolumeInformationProxy Return : Success FileWriteContext(23)(project.ini): All ok :) [Debug] [FSDriver] - CloseFileProxy : \Subfolder1 [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContext, False, False, False, False, #9256, False, False} [Debug] [FSDriver] - CloseFileProxy : \Subfolder1 [Debug] [FSDriver] - GetVolumeInformationProxy: [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - VolumeNameBuffer TestASD\testi09872\Kaikki [Debug] [FSDriver] - FileSystemNameBuffer NTFS [Debug] [FSDriver] - VolumeSerialNumber 2933762 [Debug] [FSDriver] - FileSystemFlags CasePreservedNames, UnicodeOnDisk, SupportsRemoteStorage [Debug] [FSDriver] - MaximumComponentLength 256 [Debug] [FSDriver] - GetVolumeInformationProxy Return : Success [Debug] [FSDriver] - CloseFileProxy : \Subfolder1\project.ini [Debug] [FSDriver] - CleanupProxy : \ [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - CleanupProxy : \ [Debug] [FSDriver] - CloseFileProxy : \ [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - CloseFileProxy : \ [Debug] [FSDriver] - CreateFileProxy : \Subfolder1 [Debug] [FSDriver] - CreationDisposition Open [Debug] [FSDriver] - FileAccess ReadData, Synchronize [Debug] [FSDriver] - FileShare ReadWrite, Delete [Debug] [FSDriver] - FileOptions None [Debug] [FSDriver] - FileAttributes Normal [Debug] [FSDriver] - Context {, False, True, False, False, #9256, False, False} [Debug] [FSDriver] - CreateFileProxy : \Subfolder1 Return : Success [Debug] [FSDriver] - FindFilesWithPatternProxy : \Subfolder1 FileWriteContext(26)(project.ini): Task started [Debug] [FSDriver] - rawSearchPattern definitions.xml [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContext, False, True, False, False, #9256, False, False} [Debug] [FSDriver] - FindFilesWithPatternProxy : \Subfolder1 Return : Success [Debug] [FSDriver] - CleanupProxy : \Subfolder1 [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContext, False, True, False, False, #4, False, False} [Debug] [FSDriver] - CleanupProxy : \Subfolder1 [Debug] [FSDriver] - CloseFileProxy : \Subfolder1 [Debug] [FSDriver] - CreateFileProxy : \Subfolder1\definitions.xml [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContext, False, True, False, False, #9256, False, False} [Debug] [FSDriver] - CloseFileProxy : \Subfolder1 [Debug] [FSDriver] - CreationDisposition CreateNew [Debug] [FSDriver] - FileAccess ReadData, WriteData, AppendData, ReadExtendedAttributes, WriteExtendedAttributes, ReadAttributes, WriteAttributes, Delete, ReadPermissions, ChangePermissions, Synchronize [Debug] [FSDriver] - FileShare None [Debug] [FSDriver] - FileOptions SequentialScan [Debug] [FSDriver] - FileAttributes Archive [Debug] [FSDriver] - Context {, False, False, False, False, #9256, False, False} FileWriteContext(26)(project.ini): Saying, source we have updated content! [Debug] [FSDriver] - CreateFileProxy : \ [Debug] [FSDriver] - CreationDisposition Open [Debug] [FSDriver] - FileAccess Synchronize [Debug] [FSDriver] - FileShare ReadWrite [Debug] [FSDriver] - FileOptions None [Debug] [FSDriver] - FileAttributes 0 [Debug] [FSDriver] - Context {, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - CreateFileProxy : \ Return : Success [Debug] [FSDriver] - GetVolumeInformationProxy: [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - VolumeNameBuffer TestASD\testi09872\Kaikki [Debug] [FSDriver] - FileSystemNameBuffer NTFS [Debug] [FSDriver] - VolumeSerialNumber 2933762 [Debug] [FSDriver] - FileSystemFlags CasePreservedNames, UnicodeOnDisk, SupportsRemoteStorage [Debug] [FSDriver] - MaximumComponentLength 256 [Debug] [FSDriver] - GetVolumeInformationProxy Return : Success [Debug] [FSDriver] - GetVolumeInformationProxy: [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - VolumeNameBuffer TestASD\testi09872\Kaikki [Debug] [FSDriver] - FileSystemNameBuffer NTFS [Debug] [FSDriver] - VolumeSerialNumber 2933762 [Debug] [FSDriver] - FileSystemFlags CasePreservedNames, UnicodeOnDisk, SupportsRemoteStorage [Debug] [FSDriver] - MaximumComponentLength 256 [Debug] [FSDriver] - GetVolumeInformationProxy Return : Success [Debug] [FSDriver] - CleanupProxy : \ [Debug] [FSDriver] - Context {TheApp.FileSystemDriver.Contexts.DirectoryContextRoot, False, True, False, False, #5852, False, False} [Debug] [FSDriver] - CleanupProxy : \ [Debug] [FSDriver] - CreateFileProxy : \Subfolder1\definitions.xml Return : Success [Debug] [FSDriver] - UnmountedProxy: [Debug] [FSDriver] - Context {, False, False, False, False, #0, False, False} [Debug] [FSDriver] - UnmountedProxy Return : Success ```

Liryna commented 1 year ago

Hi @pj-r ,

Can you try to run Procmon and see if all the requests inside the device have a responds ? Does it always dismount after the same elapse time ? Can you reproduce with the native or C# samples ?

pj-r commented 1 year ago

Finally found it. It was about GC disposing the dokanInstance.

With previous version the Mount(...) method was "a long running task" and with the latest driver version, mount method of our wrapper class did return immediately what caused "releasing" of the driver instance for mercy of GC. It did dispose what triggered the unmount.

It works now 👍