Итак, что имеем:
- C++ Builder 6 (Build 10.166 Update 4)
- программу, использующую класс TRegistry для доступа к реестру
- и операционную систему MS Windows 2000 SP4
- при установке текущими некоторых ключей (с помощью методов OpenKey/OpenKeyReadOnly)
- при попытке получить имена субключей в некоторых случаях (с помощью метода GetKeyNames)

Но как объяснить следующее?!
При получении имен субключей текущего ключа в некоторых случаях они [имена] оказываются усеченными! Причем, в прямом смысле...
Например, мне возвращается: "Remova" вместо "RemovableMedia" (это ветка HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\STORAGE\) или ".NET CLR Networki" вместо ".NET CLR Networking" (ветка HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\) и еще в ряде случаев...
Что еще более странно, иногда в качестве имен субключей возвращаются пустые значения! Например, в разделе HKEY_LOCAL_MACHINE в ветке SYSTEM\ControlSet002\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318} есть два вполне нормальных субключа "0000" и "0001" - вместо них мне возвращается пустая строка...
Всего по всем разделам и веткам реестра таких "глючных" ключей набегает около 200 штук.
В принципе, и хрен бы с ним, не так уж они мне и нужны... Просто интересно, это я что-то делаю не так или это очередной Builder-овский глюк?
Если кому интересно, могу выложить исходник, но вроде бы в нем все верно, там строится дерево TreeView и заполняется именами ключей, все это проделывается рекурсивно...
А если кто сталкивался с такой штукой - плз поделитесь, что вы думаете на этот счет?