Нет документированного способа получения имени файла, связанного с дескриптором файла.Приведенный вами пример может работать только для файлов с отображением в памяти, он опирается на функцию API GetMappedFileName ().Для обычных файловых дескрипторов такого API не существует.
На самом деле это возможно, это делает утилита SysInternals 'Handle.Причина, по которой это не задокументировано, состоит в том, что структура таблицы дескрипторов ядра сильно варьируется, она меняется для каждой версии Windows.И, прежде всего, потому что это позволило бы крайне небезопасные операции с дескриптором файла, такого рода, который нарушает целостность файловой системы.Люди будут использовать его, чтобы закрыть дескриптор файла, принадлежащий другому процессу, чтобы избавиться от проблемы блокировки файла.
Вы, вероятно, можете узнать, как это сделать, прибегая к помощи NtQuerySystemInformation.Ежедневно делайте резервные копии вашего жесткого диска, если вы планируете его использовать.