is HKLM\Software\Wow6432Node\Wow6432Node\Wow6432Node not a visual c++ bug?
-
Wednesday, January 07, 2009 12:46 PM
why not HKLM\Software\Wow6432Node\Wow6432Node\Wow6432Node is a bug in vc++?
am using vista 64bit version,
to clean registry using some cleaners softwares, every software on this key went to infinite loop,
actual structure in my registry is
HKLM
|
-->Software
|
|
-->Wow6432Node
|
|
-->Wow6432Node
that means HKLM\Software\Wow6432Node\Wow6432Node( only two levels of Wow6432Node)
but softwares are showing HKLM\Software\Wow6432Node\Wow6432Node\Wow6432Node then continuing with Wow6432Node to infinite
then i worte a small code like
if (RegOpenKeyEx(HKLM, _T("Software\\Wow6432Node\\Wow6432Node\\Wow6432Node"),strKeyName,0,KEY_READ,&hKey) == ERROR_SUCCESS)
AfxMessageBox(_T("Key exists"));
else
AfxMessageBox(_T("Key does n\'t exists"));
in visual studio 2005,
then complie & ran, its gave the message "Key exists". i was shocked at that movement
after few seconds
tried REG QUERY HKLM\Software /s from command prompt, it gave the current results, that means it didnt go into infinite loop
So i realize its Visual studio bug
am i right or what?
what u say guys?
Answers
-
Wednesday, January 07, 2009 1:26 PMModerator
This is a side-effect of the registry virtualization in 64-bit Vista, the Wow6432Node is a link to the registry keys visible to a 32-bit program. Your registry cleaners clearly don't handle this virtualization correctly, which makes them a very dangerous tool to use.
Please use this forum only to ask questions about the C++ Language.
Hans Passant.- Marked As Answer by nobugzMVP, Moderator Saturday, May 16, 2009 9:15 AM
All Replies
-
Wednesday, January 07, 2009 1:26 PMModerator
This is a side-effect of the registry virtualization in 64-bit Vista, the Wow6432Node is a link to the registry keys visible to a 32-bit program. Your registry cleaners clearly don't handle this virtualization correctly, which makes them a very dangerous tool to use.
Please use this forum only to ask questions about the C++ Language.
Hans Passant.- Marked As Answer by nobugzMVP, Moderator Saturday, May 16, 2009 9:15 AM
-
Thursday, January 08, 2009 4:53 AMthanks for reply,
what my question is
if (RegOpenKeyEx(HKLM, _T("Software\\Wow6432Node\\Wow6432Node\\Wow6432Node"),strKeyName,0,KEY_READ,&hKey) == ERROR_SUCCESS)
why this condition becomes true, even that key does not exists,
how can we handled registry virtualization correctly at this location?
-
Thursday, January 22, 2009 11:42 PMsecond \Wow6432Node Key is a bug, usally from a bad upgrade install or bad system seal. You can delete that entire key...free tons of space from your registry, with no problem. if you can write you code not to try to keep scanning the key and just autodelete the key HKLM\Software\Wow6432Node\Wow6432Node\ you should be safe! I Did it myself when i couldn't install vista upgrade, but after i deleted it, no problem worked fine!
- Proposed As Answer by d2600 Thursday, January 22, 2009 11:43 PM
- Unproposed As Answer by nobugzMVP, Moderator Friday, January 23, 2009 1:03 AM
-
Friday, January 23, 2009 1:03 AMModeratorDo not delete that key.
Hans Passant. -
Saturday, May 16, 2009 1:28 AMI got this problem, just after applying SP1 on a fresh native VISTA Ultimate 64.
Nothing to do with C++
After investigation it appears that MicroSoft Online Freeware "Onecare Registry Cleaner" and Print function in Regedit.exe will loop for 3 to 4 hours before going trhu.
With Regedit.exe I print the HKLM\wow6432\Software\Microsoft section an it generate 347289 pages in PDF !!!!!! before I cancelled it. Yes 347289 pages WOW !!
With MS Onecare Registry Cleaner it gives 14040 errors on HKLM\wow6432\Software, when I ask to clean, Onecare bypass them.
I did the RegEdit-Print in several sections of HKLM\wow6432\Software and it appears that the HKLM\wow6432\Software\Microsoft cause that problem.
I did a Registry Defrag with "Quicksys RegDefrag" no results.
I have tried in previous installation MS Update KB947821 without result.
I suspect the problem occurs when installing multiple MS update simultaneously.
As example: I have installed VISTA 4 times trying to get rid of this problem.
First I install VISTA from CD, then applied all 80 updates that are important. --> wow6432 get corrupted (just in applying MS Updates)
Then I restart install VISTA and selectively applying no more then 10 updates a shot, in creation date order. No problem with Wow6432.
Then I applied SP1 --> get problem with Wow6432 SP1 contains hundred of updates.
I have tried one commercial registry cleaner and it pass thru HKLM\Wow6432 but I didn't ask for a clean.
Will it create more future problems ??
Registry not so WOW