Ну, вы знаете, что это возможно, утилита SysInternals 'Handle делает это. NtQueryInformation не будет прекращена, это существенный низкоуровневый интерфейс между Win32 и «реальной» операционной системой.
Что, однако, никогда не произойдет, так это то, что аргументы NtQueryInformation, которые позволяют перебирать дескрипторы, будут задокументированы. Поскольку это не останавливается на достигнутом, некоторые маппеты будут использовать его для вызова метода CloseHandle () для файла, который он / она не хочет блокировать. Что является очень хорошим способом уничтожить содержимое вашего жесткого диска.
Процесс, которому принадлежал дескриптор, не знает, что дескриптор закрыт. Он просто продолжит писать в него, вероятно, полностью игнорируя код возврата «это не сработало» из WriteFile (). Что безвредно, пока программа не откроет другой дескриптор, возвращая то же значение, что и тот, который был закрыт ранее. Теперь он начинает писать смесь мусора (предназначенного для предыдущего дескриптора) и новых данных в дескриптор. Совершенно уничтожая содержание всего, что оно пишет. Раскрутите ленты резервного копирования, если это что-то вроде критически важной базы данных.