SOLVED Identifying 32bit/64bit programs

Status
Not open for further replies.
Joined
Apr 6, 2011
Messages
25
Reaction score
0
How does the Windows (Program) Installer distinguish 32bit programs from 64bit?
I have a suite of programs that went into Program Files which I wouldn't have expected to run as 64bit.
 

catilley1092

Win 7/Linux Mint Lover
Joined
Nov 13, 2009
Messages
3,507
Reaction score
563
It would be my guess that the process is automated. Some programs that are clearly 64 bit ones (some AV's & other programs that are 64 bit only) goes straight into the Programs Folder.

However, many goes into the Program Files (x86) folder because these programs are of the 32 bit type, although they run fine on 64 bit computers. This list of programs are typically longer than the regular Program Files folder. As time goes by, you'll begin to see more programs go to the Program Files folder, rather than the (x86) one, as more programs converts to 64 bit.

However, that may be some time away, as long as there's 32 bit OS's being supported, there will continue to be 32 bit (x86) programs written. Hopefully, the next release of Windows will be 64 bit only.

My answer may not be the perfect one, but that's how I understand it.

Cat
 
Joined
Apr 6, 2011
Messages
25
Reaction score
0
The question was
How does the Windows (Program) Installer distinguish 32bit programs from 64bit?

What is present in programs that run as 64bit programs to identify them?

A text string? At the beginning? A binary indicator?
 

Digerati

Post Quinquagenarian
Microsoft MVP
Joined
Apr 7, 2010
Messages
1,094
Reaction score
277
I think you are confused. The Windows Installer has nothing to do with it. YOU, the user must decide if you run 32-bit or 64-bit then YOU the user must download and install the correct version.

The program developer may bundle both versions in a single download, but then it is that program's installer that then check to see what version is needed.
 
Joined
Dec 17, 2010
Messages
189
Reaction score
43
In most cases that is true, however if you were running W7 64 bit and upgraded Internet Explorer to IE9, the update actually updated the IE9 in the program files (86) folder and the program files folder.
 

Digerati

Post Quinquagenarian
Microsoft MVP
Joined
Apr 7, 2010
Messages
1,094
Reaction score
277
No. You are talking something different, but it is not exactly correct either. If you install IE9 on a 64-bit Windows, you get both 32-bit and 64-bit IE9. As you noted, the 32-bit version is installed in the "Program Files (x86)" folder, but the 64-bit version is also installed in the Programs Files folder.
 
Joined
Dec 17, 2010
Messages
189
Reaction score
43
I knew that, what I am saying is if you run W7 64 bit and updated from IE 8 to IE 9 the update would update the 32 bit in the 86 folder and it would also update the one in the programs folder .
 

davehc

Microsoft MVP
Joined
Jul 20, 2009
Messages
1,958
Reaction score
502
Bsomers.
As you surmised, it is in the program (binary) string. in the program header..

The first value in the file header tells you the architecture:
0x14C for x86 or
0x8664 for x64.
 
Joined
Apr 6, 2011
Messages
25
Reaction score
0
I think you are confused. The Windows Installer has nothing to do with it. YOU, the user must decide if you run 32-bit or 64-bit then YOU the user must download and install the correct version.

The program developer may bundle both versions in a single download, but then it is that program's installer that then check to see what version is needed.
Sorry, but I don't feel confused. I asked how 32-bit and 64-bit routines can be distinguished.

I ran the Installer of a program suite that stems from a well-known magazine. There is only one version of the installer. I expected this suite to land in /Program Files (X86), but found it in /Program Files. That led me to wonder how either the Windows Program Installer or the third-party program's installer, or whatever else, decides that the programs can run as 64-bit programs. That is why I asked how programs that can run in 64-bit mode are distingished from those that cannot.

BTW, the Windows Installer is very sloppily named. Or, let's be kind and say hastily named. It doesn't install Windows. It is a Windows facility for installing third-party programs.
 
Joined
Apr 6, 2011
Messages
25
Reaction score
0
Bsomers.
As you surmised, it is in the program (binary) string. in the program header..

The first value in the file header tells you the architecture:
0x14C for x86 or
0x8664 for x64.
Thank you very much. That is what interested me.
 
Joined
Apr 6, 2011
Messages
25
Reaction score
0
... the 32-bit version is installed in the "Program Files (x86)" folder, but the 64-bit version is also installed in the Programs Files folder.
Now, I'm confused. LOL What is the advantage of having both versions if the processor is a 64-bit processor?

Looking at iTunes, I find that there are for the most part different components in /Program Files (X86) and in /Program Files. It gets stranger and stranger.
 
Joined
Dec 17, 2010
Messages
189
Reaction score
43
The reason is a few add-ons will not work in the 64 bit version but work very well in the 32 bit version.
 

Digerati

Post Quinquagenarian
Microsoft MVP
Joined
Apr 7, 2010
Messages
1,094
Reaction score
277
What is the advantage of having both versions if the processor is a 64-bit processor?
The processor has next to nothing to do with because most processors and motherboards have supported 64-bit for many years.

It is all about the software, starting with OS. If the OS is 64-bit then to take advantage of 64-bit, the software (including drivers, programs, add-ons, etc.) must be 64-bit too.

Note that the vast majority of 32-bit software will run on 64-bit hardware and with 64-bit operating systems. But 64-bit software will not run if the OS is 32-bit.
 
Joined
Apr 6, 2011
Messages
25
Reaction score
0
The processor has next to nothing to do with because most processors and motherboards have supported 64-bit for many years.
It would surprise me if the processor had so little 'to do with it`. The fundamental difference is certainly that the 64-bit processor provides new instructions and enhanced instructions for tranferring larger 'chunks of data'. And includes wider registers for data and addresses (themselves data, of course).

The operating system and other programs must be adapted to take advantage of that.

32-bit routines will often run on 64-bit processors, making inefficient use of the registers and memory, however.
64-bit routines will not run on 32-bit processors, but will crash due to overwritten data.

I haven't yet grasped satisfactorily, why my programs that were compiled under a 16-bit processor will run with a 32-bit processor, but not with a 64-bit processor.
 
Joined
Apr 6, 2011
Messages
25
Reaction score
0
The first value in the file header tells you the architecture: 0x14C for x86 or 0x8664 for x64.
I just took a look at the version of IE9 stored in \Windows\Program Files on my 64-bit system. I didn't find either 0x14C or 0x8664 . But I found the string IsWow64Process at an offset of 48 bytes from the beginning. It appears to be a 32-bit application, marked to be run in a 64-bit environment with the help of Wow64:

The Wow64 subsystem comprises a lightweight compatibility layer that has similar interfaces on all 64-bit versions of Windows. It aims to create a 32-bit environment that provides the interfaces required to allow 32-bit Windows applications to run unmodified in the 64-bit system. Technically, WoW64 is implemented using three dynamic-link libraries (DLLs):

Wow64.dll, the core interface to the Windows NT kernel that translates between 32-bit and 64-bit calls, including pointer and call stack manipulations
Wow64win.dll, which provides the appropriate entry-points for 32-bit applications
Wow64cpu.dll, which takes care of switching the processor from 32-bit to 64-bit mode
(Wikipedia)
 

Digerati

Post Quinquagenarian
Microsoft MVP
Joined
Apr 7, 2010
Messages
1,094
Reaction score
277
It would surprise me if the processor had so little 'to do with it`. The fundamental difference is certainly that the 64-bit processor provides new instructions and enhanced instructions for tranferring larger 'chunks of data'. And includes wider registers for data and addresses (themselves data, of course).
Of course the CPU must support 64-bit. That was not the point. You took that one line out of context. I was responding to your comment about which version of IE is installed where.
 
Joined
Apr 6, 2011
Messages
25
Reaction score
0
Of course the CPU must support 64-bit. That was not the point. You took that one line out of context. I was responding to your comment about which version of IE is installed where.
Ow, sorry then. I did misinterpret that. On the other hand, I hadn't spoken about IE. I avoid IE except for checking how a new or modified web page will go wrong with IE.
 

Digerati

Post Quinquagenarian
Microsoft MVP
Joined
Apr 7, 2010
Messages
1,094
Reaction score
277
Ow, sorry then. I did misinterpret that.
No problem!
On the other hand, I hadn't spoken about IE.
Ummm, sorry, but you did! In response to my comments (which you quoted) about where IE is installed, you said,
What is the advantage of having both versions if the processor is a 64-bit processor?
Certainly, it is your choice to avoid IE and I respect that. Just make sure you are avoiding it for a legitimate reason. Security is not one. Robustness is not one. Speed is not one. IE9 excels in all those - especially security! IE crashes are rare, but crash recovery works flawlessly. And IE9 is extremely quick.

So the only real reason to avoid IE9 today is simply because you prefer the look and feel of another browser. That's all.
 
Joined
Apr 6, 2011
Messages
25
Reaction score
0
On the other hand, I hadn't spoken about IE.

Ummm, sorry, but you did! In response to my comments (which you quoted) about where IE is installed, you said,

What is the advantage of having both versions if the processor is a 64-bit processor?
I do see that now. I wasn't thinking of IE, but of programs in general, that appear in both folders. Perhaps their routines are distributed over those folders with no individual routine in both?

So the only real reason to avoid IE9 today is simply because you prefer the look and feel of another browser. That's all.
I have long avoided IE because of its notoriously poor support for CSS. CSS programmers employ an unbelievable raft of hacks and work-arounds to accomodate IE5, 6 and 7, as with no other browsers. I have read that IE9 is much better. I've only had WIN7 and IE9 for a few weeks. No experience yet.
 

Digerati

Post Quinquagenarian
Microsoft MVP
Joined
Apr 7, 2010
Messages
1,094
Reaction score
277
CSS programmers employ an unbelievable raft of hacks and work-arounds to accomodate IE5, 6 and 7, as with no other browsers. I have read that IE9 is much better.
Then believe what you read. Note IE7 was the start of Microsoft's serious efforts to comply with W3C Web Standards, and the introduction of "Compatibility Mode" for the reasons you stated. Microsoft what "the" standard and site developers wrote to IE6 if they wanted their sites to stand out. IE8 made significant improvements, and IE9 did again.

There are still a few sites that I have to toss IE9 into Compatibility Mode, but that generally means the site needs updating. Plus, MS keeps an updated list you can opt in to.

People blame Microsoft for IE6's poor security when the real blame needs to go where it belongs, on the badguys and a lack of resources (tax payer's money) to fight them. So now, after a decade+ of bashing by the biased IT press and MS competitors, MS is putting security and Web Standards first and IE9 is their most recent and successful effort to date.

Again, while all that is important, it is not meant to disparage the alternatives. Regardless the browser of choice, you still need to keep your system updated, use a real-time anti-malware solution, a software based firewall, and avoid participating in risky practices - as the user is always the weakest link.
 
Status
Not open for further replies.

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top