title: Does Dokan/Dokan.NET (not) support synchronous I/O?
body: <p>I created a virtual drive in C# using the Dokan(.NET) library, and it's working quite well.</p>
  
  <p>However, when I try to read a file from the drive in another application I get an exception whenever using operations that read synchronously, like <code>System.IO.File.ReadAllText(...)</code>.</p>
  
  <p>The text of the exception is: "Handle does not support synchronous operations. The parameters to the FileStream constructor may need to be changed to indicate that the handle was opened asynchronously".</p>
  
  <p>So if I am interpreting this correctly, .NET apparently tries to read the entire content of the file in a single synchronous operation, but Dokan does not seem to allow that.</p>
  
  <p>But when using a method like <code>ReadAllText</code> I don't really have any control over the way the <code>FileStream</code> is constructed (isn't that the whole point of that method, after all, simply get the file content without having to bother with Streams and Readers and Buffers and whatnot?).</p>
  
  <p>Can I get Dokan to support synchronous I/O access on it's file handles somehow? Or do I have to somehow live with the fact that synchronous operations are just not possible on Dokan-hosted files (and hope that no application that might ever have to work on my virtual drive depends on them)?</p>