Ответ 1
Согласно этой статье поддержки, это 255 символов.
Я пишу очень длинное имя ключа реестра (это список программ для комбинированной деинсталляции), и я думаю, что он слишком большой.
Каков максимальный размер ключа (в символах)? (Наименьший максимум среди Win xp, vista, 7, так как он должен работать на всех них)
Согласно этой статье поддержки, это 255 символов.
Имя ключа: 255 символов
Имя значения: 16,383 символов
Значение: Доступная память (последний формат)
или 1 МБ (стандартный формат)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724872%28v=vs.85%29.aspx
здесь ключ длиной до 255:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} ## # ХРАНЕНИЯ # ОБЪЕМ #_?? _ USBSTOR # DISK &? VEN_LEXAR & PROD_USB_FLASH_DRIVE & REV_1100 # AANL1B891R5GCDV6 & 0 # {53F56307 -B6BF-11D0-94F2-00A0C91EFB8B} # {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} #
Я нашел это, когда писал инструмент поиска всех ключей в реестре. Я создал буфер, который был 256, который вызвал исключение стека.
Когда я попытался просмотреть этот ключ, используя regedit, я заметил, что он показывает стрелку, указывающую на наличие подключей, но не будет реагировать при нажатии. Я только догадываюсь о последнем значении "#", потому что другие ключи в этой области заканчиваются им.
Когда я удвоил буфер, все прошло гладко.