When SerializeCallbacks is false, do file operations for a file go into one thread?
All file operations for one file go into one thread (i.e. are serialized) but this thread is not always the same. The thread is picked from the worker thread pool and you should not make any assumption regarding what this thread is. One thing you can be sure in is that if the application called SetSize, then Write, your code will first get SetSize callback, and only after completion of SetSize callback your Write callback will be called. But Write callback can be called in context of different thread from the one used for SetSize callback.