dokan-dev / dokany

User mode file system library for windows with FUSE Wrapper
http://dokan-dev.github.io
5.21k stars 661 forks source link

WriteFile Call Order Problem #1067

Closed lanopk closed 2 years ago

lanopk commented 2 years ago

Feature request can skip this form. Bug report must complete it. Check List must be 100% match or it will be automatically closed without further discussion. Please remove this line.

Environment

Check List

Description

WriteFileEvents are not called in order. If you look at Process Monitor, the explorer is calling WriteFile in order. However, Dokan's WriteFile callback is not called in order. How do I get WriteFile to be called in order?

Logs

Please attach in separate files: mirror output, library logs and kernel logs. In case of BSOD, please attach minidump or dump analyze output.

==> Process Monitor 1:46:24.5191022 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 0, Length: 1,048,576, Priority: Normal 1:46:24.5192220 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 1,048,576, Length: 1,048,576, Priority: Normal 1:46:24.5193320 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 2,097,152, Length: 1,048,576, Priority: Normal 1:46:24.5195327 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 3,145,728, Length: 1,048,576, Priority: Normal 1:46:24.5197287 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 4,194,304, Length: 1,048,576, Priority: Normal 1:46:24.5199315 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 5,242,880, Length: 1,048,576, Priority: Normal 1:46:24.5201312 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 6,291,456, Length: 1,048,576, Priority: Normal 1:46:24.5202601 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 7,340,032, Length: 1,048,576, Priority: Normal 1:46:24.5219304 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 8,388,608, Length: 1,048,576, Priority: Normal 1:46:24.5223005 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 9,437,184, Length: 1,048,576, Priority: Normal 1:46:24.5226444 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 10,485,760, Length: 1,048,576, Priority: Normal 1:46:24.5229967 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 11,534,336, Length: 1,048,576, Priority: Normal 1:46:24.5267763 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 12,582,912, Length: 1,048,576, Priority: Normal 1:46:24.5271261 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 13,631,488, Length: 1,048,576, Priority: Normal 1:46:24.5308740 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 14,680,064, Length: 1,048,576, Priority: Normal 1:46:24.5311930 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 15,728,640, Length: 1,048,576, Priority: Normal 1:46:24.5315128 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 16,777,216, Length: 1,048,576, Priority: Normal 1:46:24.5317987 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 17,825,792, Length: 1,048,576, Priority: Normal 1:46:24.5321366 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 18,874,368, Length: 1,048,576, Priority: Normal 1:46:24.5324789 explorer.exe 19944 WriteFile \Drive\TestDrive\image3.st SUCCESS Offset: 19,922,944, Length: 1,048,576, Priority: Normal ..

==> My Log 2022-02-14 13:46:24.520 WriteFile : \image3.st : offset : 1048576 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059289483584} 2022-02-14 13:46:24.520 WriteFile : \image3.st : offset : 3145728 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059289483104} 2022-02-14 13:46:24.520 WriteFile : \image3.st : offset : 0 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059289483264} 2022-02-14 13:46:24.520 WriteFile : \image3.st : offset : 2097152 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059289482944} 2022-02-14 13:46:24.525 WriteFile : \image3.st : offset : 8388608 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059289483584} 2022-02-14 13:46:24.525 WriteFile : \image3.st : offset : 10485760 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059289482944} 2022-02-14 13:46:24.525 WriteFile : \image3.st : offset : 11534336 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059289483104} 2022-02-14 13:46:24.525 WriteFile : \image3.st : offset : 9437184 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059289483264} 2022-02-14 13:46:24.525 WriteFile : \image3.st : offset : 4194304 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059255108704} 2022-02-14 13:46:24.526 WriteFile : \image3.st : offset : 5242880 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059289481824} 2022-02-14 13:46:24.528 WriteFile : \image3.st : offset : 13631488 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059255108704} 2022-02-14 13:46:24.528 WriteFile : \image3.st : offset : 12582912 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059289481824} 2022-02-14 13:46:24.528 WriteFile : \image3.st : offset : 7340032 : length : 1048576 : {##DokanFileInfo: Context:{}, DeleteOnClose:False, IsDirectory:False, NoCache:False, PagingIo:False, #19944, SynchronousIo:False, WriteToEndOfFile:False, _dokanContext:2059289481184} ...

Liryna commented 2 years ago

Looking at the timestamp they seem to all be issued at the same and not sequentially time by explorer. You cannot force them to be sequential and it should not matter.