Мне было интересно, какая самая длинная длина имени разрешена ядром Windows?
Например: я знаю, что ядро использует структуры UNICODE_STRING для хранения всех путей к объектам, и поскольку длина байта строки широких символов хранится внутри USHORT, это позволяет использовать максимальную длину пути 2 ^ 15-1 символов. Есть ли подобное жесткое ограничение на имя файла (а не путь)? (Меня не волнует, накладывает ли NTFS или FAT32 конкретное ограничение; я ищу максимально возможное теоретически допустимое имя в ядре, при условии отсутствия дополнительных ограничений файловой системы или оболочки.)
(Изменить: для тех, кто задается вопросом, почему это вообще имеет значение, учтите, что обычно перемещение по каталогу достигается с помощью _3 _ / _ 4_ вызовов, по одному вызову на файл. Учитывая функцию с именем NtQueryDirectoryFile, которая является базовым системным вызовом и которая возвращает несколько имена файлов для каждого вызова, на самом деле можно воспользоваться этим ограничением максимальной длины на пути, чтобы сделать чрезвычайно быстрый обход каталога, который использует только стек в качестве буфера. Теперь я пытаюсь расширить эту концепцию , и мне нужно знать максимальный размер имени файла.)