Jump to content


 


Register a free account to unlock additional features at BleepingComputer.com
Welcome to BleepingComputer, a free community where people like yourself come together to discuss and learn how to use their computers. Using the site is easy and fun. As a guest, you can browse and view the various discussions in the forums, but can not create a new topic or reply to an existing one unless you are logged in. Other benefits of registering an account are subscribing to topics and forums, creating a blog, and having no ads shown anywhere on the site.


Click here to Register a free account now! or read our Welcome Guide to learn how to use this site.

Photo

32 bit shell32.dll attempts to load 64 bit devmgr.dll


  • Please log in to reply
3 replies to this topic

#1 eewiz

eewiz

  • Members
  • 22 posts
  • OFFLINE
  •  
  • Local time:05:21 PM

Posted 01 September 2015 - 04:29 AM

Win XP 64-bit
Many programs do not work.
The issue is that c:\windows\syswow64\SHELL32.DLL is attempting to load c:\windows\sysnative\DEVMGR.DLL.
I got this information from dependency walker.

I installed a fresh copy of XP 64-bit in a VM to compare the two side by side.
On the new VM copy of XP64, loading c:\windows\syswow64\SHELL32.DLL in dependency walker shows DEVMGR.DLL with no path, and listed as a missing delay-load dependency module. All programs of interest on this XP64 box work correctly.
On my heavily used copy of XP64, loading c:\windows\syswow64\SHELL32.DLL in dependency walker shows DEVMGR.DLL with the c:\windows\sysnative\ path listed as a module with different CPU types found. All programs of interest on this XP64 box fail miserably.

The version of SHELL32.DLL on the fresh install, where everything works OK, is 6.0.3790.1830. This is the one that correctly finds no DEVMGR.DLL in SysWOW64.

The version of SHELL32.DLL on the box I depend on, where everything fails, is 6.0.3790.5018. This is the one that incorrectly loads c:\windows\sysnative\DEVMGR.DLL.

Does anyone know why version 6.0.3790.5018 of the c:\windows\syswow64\SHELL32.DLL is attempting to load c:\windows\sysnative\DEVMGR.DLL while version 6.0.3790.1830 of the c:\windows\syswow64\SHELL32.DLL correctly finds no DEVMGR.DLL in the SysWOW64 folder?

All referenced dependencies from SHELL32.DLL on the bad box are to SysWOW64 except for the one reference to DEVMGR.DLL.

Could there be something in the registry on the old box that is not on the fresh box that would cause sysnative to be invoked?
I searched every reference to DEVMGR.DLL in both registries and both are identical. All references are to c:\windows\system32\DEVMGR.DLL

Thank you in advance for any insight you may provide.



BC AdBot (Login to Remove)

 


#2 brainout

brainout

  • Members
  • 1,190 posts
  • OFFLINE
  •  
  • Gender:Female
  • Location:Houston
  • Local time:06:21 PM

Posted 02 September 2015 - 04:25 AM

Okay, well I don't understand half of what I read in your post, but I do know thea when I want to change an icon, shell32.dll is what shows up.  In other words, if you create a shortcut, and then you want to change the icon for that shortcut, the default in XP for the list of other icons, is.. system32's shell32.dll.  It's not the default in Windows 7, but same file produces the same result;  same in Win8, and 10.  Whether 64-bit or 32-bit.

 

The only other thing I could suggest would be to copy the working shell32.dll to the failing system, after copying the later version on the failing system elsewhere, to see if maybe the difference is only the version.  In short, copy what works to what doesn't, but beforehand copy what doesn't work, to some other directory you will remember like /test, so you can retrieve it later.  Else, is your devmgr.dll version the same? 

 

Maybe someone else will have better ideas, but I've never used 64-bit XP so I'm not sure whether there are other wrinkles.


(Away, Notifications Off) AUDIT PREMISES, my guidon.  -- brainout or brainouty on vimeo or Youtube, domain brainout.net


#3 eewiz

eewiz
  • Topic Starter

  • Members
  • 22 posts
  • OFFLINE
  •  
  • Local time:05:21 PM

Posted 03 September 2015 - 07:48 PM

I have discovered the answer.

 

For those that may not be aware.

On the XP x64 platform a 32-bit application cannot access the system32 folder with a Wow64.dll version prior to 5.2.3790.4156.

At version 5.2.3790.4156 of Wow64.dll and beyond XP 64-bit can access the system32 folder from a 32-bit application.

See https://support.microsoft.com/en-us/kb/942589 for more information on Wow64.dll.

 

I have forever had "C:\Windows\Sysnative" in my path statement. I do not know how or when it appeared there.

But, after an unknown update installed version 5.2.3790.4156 of Wow64.dll, all kinds of things broke.

After installation of version 5.2.3790.4156 of Wow64.dll, any 32-bit program searching for a not found 32-bit .dll file in the SysWOW64 folder, would now be able to search Sysnative which is actually the C:\Windows\System32 folder where all of the 64-bit .dll files are stored and attempt to load the 64-bit version of the searched for .dll into the 32-bit process.

 

Of course trying to load a 64-bit .dll into a 32-bit process crashes the 32-bit program.

After removing "C:\Windows\Sysnative" from my path variable, many broken things started working again.

Sysnative is an internal feature of 64-bit windows and "C:\Windows\Sysnative" should never be added to the path variable.

 

Now, why the 32-bit Shell32.dll has a dependancy on the Devmgr.dll file is beyond me.

On 64-bit windows, the only Devmgr.dll id 64-bit. This is the .dll that makes Device Manager work and there is only a 64-bit version of it in the System32 folder. There is no 32-bit version of Devmgr.dll in the SysWOW64 folder.

Although Dependency Walker clearly shows that the 32-bit Shell32.dll has a dependency for Devmgr.dll. Admittedly windows handles this impossible dependency with grace until one puts "C:\Windows\Sysnative" into the path variable.

 

All for now.


Edited by hamluis, 04 September 2015 - 09:56 AM.


#4 hamluis

hamluis

    Moderator


  • Moderator
  • 56,567 posts
  • OFFLINE
  •  
  • Gender:Male
  • Location:Killeen, TX
  • Local time:06:21 PM

Posted 04 September 2015 - 09:57 AM

Glad you resolved it...thanks for letting us know.

 

Happy computing :).

 

Louis






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users