Questions tagged [wow64]

WOW64 is a subsystem of 64-bit Windows. Add this tag for WOW64 related questions.

WOW64 (Windows 32-bit on Windows 64-bit) is a subsystem of the Windows operating system capable of running 32-bit applications on 64-bit Windows. It is included in all 64-bit versions of Windows.

166 questions
3
votes
1 answer

64bit windows registry - why is %ProgramFiles% converted to %ProgramFiles(x86)%?

After running following codes, in 32bit process, the data %ProgramFiles% converted automatically. HKEY hSubKey; DWORD dwState; RegCreateKeyEx(HKEY_CURRENT_USER, L"TestKey", NULL, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hSubKey,…
Benjamin
  • 10,085
  • 19
  • 80
  • 130
3
votes
4 answers

Launching Shell Links (LNKs) from WOW64

Our 32-Bit application launches Windows LNK files (Shell Links) via ShellExecute. When it tries to "launch" a link to a 64-Bit binary (such as the "Internet Explorer (64-Bit)" shortcut in Start Menu) it always ends up launching the 32-Bit binary.…
ilm
3
votes
3 answers

Determining if current process runs in WOW64 or not in Go

With Windows, the official way of guessing if the current 32-bit process is running on a 32 or 64-bit architecture (so on WOW64 or not) is to call the IsWow64Process function from kernel32.dll, and see if it is present (as I understand the doc). In…
Lomanic
  • 371
  • 4
  • 15
3
votes
1 answer

Can a 32 bit User-mode driver run on top of a 64 bit OS?

I have been checking out some info about 64-bit driver development; I found that drivers have to be re-written in order to be compatible with a 64 bit OS. However, I was wondering if this also holds true for User-mode drivers. The reason that I am…
Peretz
  • 1,096
  • 2
  • 18
  • 31
3
votes
1 answer

in x64 Windows is there a way to run a Runtime.exec() process avoiding 'Registry redirection'

Our app runs in jvm 32 bit, even when in windows x64. Now, at some point, I need to access some registry values, for example HKEY_LOCAL_MACHINE/SOFTWARE/mycomp. I do this by executing cmd /C reg query HKEY_LOCAL_MACHINE\SOFTWARE\mycop from…
Persimmonium
  • 15,593
  • 11
  • 47
  • 78
3
votes
1 answer

Is it right or wrong to register 32bit local server in 64bit registry part?

A COM object implemented as 32bit local server (.exe) registering itself on 64bit windows gets redirected by WOW64 by default (http://msdn.microsoft.com/en-us/library/aa384253.aspx). When a client requests an instance, the system will normally…
marx
  • 196
  • 2
  • 8
3
votes
1 answer

C# add key to registry to LocalMachine fails

I'm trying to add a key to LocalMachine in registry. I'm using this code: System.Diagnostics.Debugger.Launch(); RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE", true); RegistryKey newkey = key.CreateSubKey("1asdasds",…
Jonatan Dragon
  • 4,675
  • 3
  • 30
  • 38
3
votes
2 answers

What's the correct way to redirect registry access when using NtOpenKey?

The code I'm working on has both 32-bit and 64-bit components and they need to share information in the registry. Because of this, I'm trying to control registry redirection when using the NtOpenKey function (the user-mode equivalent of ZwOpenKey) -…
xxbbcc
  • 16,930
  • 5
  • 50
  • 83
3
votes
2 answers

Search both ProgramFiles and ProgramFiles(x86) using environment variables in C++ and C# / VB.NET

Possible Duplicate: C# - How to get Program Files (x86) on Windows Vista 64 bit I am trying to launch a third-party program from my own. I have done a quick search in Program Files and Program Files (x86), and I just realized that the path…
Thalia
  • 13,637
  • 22
  • 96
  • 190
2
votes
1 answer

Understanding how memory is managed under WoW64

We have half a dozen web apps that need to run as 32 bit process but need quite a lot of memory because of various things we're caching, for various reasons this is not easy to change. No one application needs more than 2GB, but the combined memory…
Robert
  • 6,407
  • 2
  • 34
  • 41
2
votes
3 answers

How can I get the 32 bit stack limits / the 32 bit TEB/TIB from an existing 32 bit process under windows in x64 mode?

Normally I would just cheat and use NtQueryInformationThread for ThreadBasicInformation to get the TebBaseAddress but wow64 threads have two stacks, this will only get the 64 bit Teb.
Dan
  • 1,981
  • 1
  • 14
  • 18
2
votes
2 answers

NtQueryObject returns wrong insufficient required size via WOW64, why?

I am using the NT native API NtQueryObject()/ZwQueryObject() from user mode (and I am aware of the risks in general and I have written kernel mode drivers for Windows in the past in my professional capacity). Generally when one uses the typical…
0xC0000022L
  • 20,597
  • 9
  • 86
  • 152
2
votes
2 answers

How can a WOW64 program overwrite its command-line arguments, as seen by WMI?

I'm trying to write a program that can mask its command line arguments after it reads them. I know this is stored in the PEB, so I tried using the answer to "How to get the Process Environment Block (PEB) address using assembler (x64 OS)?" by…
2
votes
1 answer

TSQLConnection.GetFieldNames not working on 64-bit machine

I have Delphi 2005 code that I use to retrieve database table field names. It works with no problems on 32-bit machines (Windows XP, Windows Vista, Windows 7). However it does not return any field names when run on a 64 bit machine (Windows Vista or…
urtlet
  • 153
  • 2
  • 10
2
votes
0 answers

32-bit process failed to get another 32-bit process's PEB on Windows10 x64 system

Code: STARTUPINFO si = { 0 }; PROCESS_INFORMATION pi = { 0 }; WCHAR lpCmdline[] = L"ad.exe"; if (!CreateProcess( NULL, lpCmdline, NULL, NULL, TRUE, CREATE_SUSPENDED, NULL, NULL, &si, &pi)) { wprintf(L"Create process fail: %d\n",…
Iv4n
  • 239
  • 1
  • 8