DokanNetでは、CreateFileに渡されるFileAccessが限定されています。Read, Write, ReadWrite
実はもっと沢山有って、DokanNetのCreateFileProxyから渡される情報を鵜呑みにしたのでは、はまってしまいます。
Generic Access Rights
https://msdn.microsoft.com/en-us/library/windows/desktop/aa446632(v=vs.85).aspx
File Access Rights Constants
https://msdn.microsoft.com/en-us/library/windows/desktop/gg258116(v=vs.85).aspx
詳しくはDokanNetのソースコードを見れば早いのですが、Query専用で開くCreateFileに対応できていません。
(FileAccess)0 ← これが欠けています。代わりにReadが来るので、場合によっては、共有違反扱いになります。
Read
Write
ReadWrite
例えば、GetFileSizeの実装として、CreateFileを使うと思うのですが、場合によっては、共有違反になり、ファイルを開くことができません。
できませんので、アプリによっては、とんでもない結果を招いたりします。例えば、WindowsのZipフォルダ機能では、Zipファイルが壊れたりします。。。