![]() |
Синтаксис имён и значений параметров реестра
Уважаемые форумчане, давно обратил внимание, но пока нигде не нашел объяснения.
В реестре довольно часто встречаются записи, как в именах параметров так и в значениях, начинающиеся с \??\ и @ К примеру: Параметр Код:
[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices] Код:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SandBox\Parameters] Так же хотелось бы услышать мнение специалистов, насколько целесообразно редактирование таких записей. |
Цитата:
Здесь же [во FriendlyTypeName] это означает "Использовать ресурс номер -10151 библиотеки shell32.dll" |
Цитата:
Цитата:
|
Plum, ну и в качестве примера-курьёза.
С учётом информации по ссылке, данной Iska: ![]() попробуйте создать такую кунсткамеру: ![]() штатными средствами. Решение под спойлером. Скрытый текст
Штатно использованы штатные Naming Files.
![]() В некоторых случаях, как на скриншоте, префикс \\.\ недокументированно работает как \\?\ — но это не значит, что они взаимозаменяемы. Во избежание неожиданных для себя эффектов надо всегда использовать документированные формы записи. |
Цитата:
Но то о чем я спрашивал, не имеет к этому отношения. Скорее всего, IMHO, здесь имеет место подмена путей в 64-битной системе |
Plum, разрядность ОС тут никаким боком.
|
Тогда почему в начале пути стоит \??\ :confused:
![]() |
Это все чтоб снять ограничения пути к файлу в 256символов. ф-ции WinAPI имею проверку на этот самый "префикс пути" (\??\) и если он есть, то вызывается Unicode ф-ция для обработки значения.
Naming Files, Paths, and Namespaces |
Цитата:
|
Я как раз читаю и стараюсь внимательно, и пункт:
Цитата:
Цитата:
Я к сожалению далек от WinAPI и программирования вообще, просто обратил внимание на не совсем понятные для меня записи в реестре. :sorry: Прийдется учить матчасть. Всем большое спасибо за участие. |
Plum, это даже не WinAPI, это глыбже ;): путь с использованием префикса \??\ — это путь во внутреннем NT-формате. Например:
Файловые операции с использованием Native API Обход ограничений FAT32/NTFS Создание процесса с использованием Native API Project Zero: The Definitive Guide on Win32 to NT Path Conversion По префиксу же \\?\ самый простой пример Вы можете увидеть при использовании утилиты mountvol. Просто откройте командную строку, наберите в ней «mountvol.exe» и нажмите «Enter». Far Manager позволяет работать и с тем, и с другим видом путей (даже для томов, не имеющих назначенной буквы): Скрытый текст
![]() Update: И ещё, решил добавить Вам на «почитать», для небольшого экскурса, насколько всё сложнее, нежели кажется, и какие глыбы кода скрыты за такой, казалось бы «простенькой» функцией WinAPI, как CreateProcess: Исследование CreateProcess. |
Шо значит мало?! Сарочка тоже кричала мало, а потом няньчила пятерых бандитов, не считая девочек
![]() ![]() |
Время: 12:44. |
Время: 12:44.
© OSzone.net 2001-