Интересно, если кто-нибудь знает внутренний дизайн WriteFile()
(Storage Team Here?) С перекрывающимся вводом-выводом для файла на диске / файловой системе.Ясно, что при использовании системного буфера и стандартного синхронного WriteFile()
он проверяет полный диск и выделяет пространство перед возвратом, потому что системный кэш, содержащий фактические данные, записывается позже (проблема вызывает ошибку отложенной записи из ОС).
Таким образом, вопрос: будет ли то же самое при использовании OVERLAPPED
структуры для асинхронной WriteFile()
, которая расширяет файл за пределы свободного пространства?Например, он вернул бы ERROR_DISK_FULL
прямо перед ожиданием ввода-вывода?
Причина, по которой нужно это знать, - это восстановление свободного места на диске или вставка нового носителя и возобновление записи.Если все сделано таким образом, это довольно просто, если после ожидания ввода-вывода у вас может быть куча операций ввода-вывода в очереди, которые затем должны быть синхронизированы и дополнительная информация отслеживается для всех элементов в очереди в случае перехода на новый носитель для настройки смещений и тому подобного..
TIA !!