Ответ 1
Если вы не против использования Interop и напрямую CreateFile() (затем обертывание возвращенной HANDLE в FileStream), вы можете принять посмотрите на создание файла с указанным FILE_ATTRIBUTE_TEMPORARY, который не будет записывать файл на диск, если имеется кэш-память, и которая автоматически удалит файл, когда его дескриптор будет закрыт.
Задание атрибута FILE_ATTRIBUTE_TEMPORARY приводит к тому, что файловые системы не должны записывать данные обратно в массовое хранилище, если имеется достаточная кэш-память, потому что приложение удаляет временный файл после закрытия дескриптора. В этом случае система может полностью избежать записи данных. Хотя он напрямую не контролирует кеширование данных так же, как ранее упомянутые флаги, атрибут FILE_ATTRIBUTE_TEMPORARY говорит, что система должна хранить как можно больше в системном кеше без записи и, следовательно, может быть обеспокоена некоторыми приложениями.