flat assembler
Message board for the users of flat assembler.

Index > Windows > Native application on Windows x64

Author
Thread Post new topic Reply to topic
KostX



Joined: 19 Sep 2012
Posts: 41
KostX 13 Aug 2014, 16:08
Hi, everyone. I've got a question: Is there the way to run 32-bit native application on Windows x64? I've tried to do it but my app gives something like BSOD with STATUS_CONFLICTING_ADDRESSES (0xC0000018) (exectly
STOP: C0000145 {Application Error} The application was unable ti start correctly (0xC0000018). Click OK to close the application)
If this trouble real in addresses, what they could be?
Post 13 Aug 2014, 16:08
View user's profile Send private message Reply with quote
KostX



Joined: 19 Sep 2012
Posts: 41
KostX 13 Aug 2014, 16:11
Or I have to rewrite my application to PE64?
Post 13 Aug 2014, 16:11
View user's profile Send private message Reply with quote
ACP



Joined: 23 Sep 2006
Posts: 204
ACP 13 Aug 2014, 18:08
There is no need to rewrite the userland application thanks to WoW64: http://en.wikipedia.org/wiki/WoW64

You don't need to do anything special to run Win32 application on x64. Basically there is either something wrong with you application or system installation but I fail to see how it is connected with FASM.
Post 13 Aug 2014, 18:08
View user's profile Send private message Reply with quote
cod3b453



Joined: 25 Aug 2004
Posts: 618
cod3b453 13 Aug 2014, 21:03
I'm going to take native to mean kernel mode running on SysWOW; similar rules apply but there are more exceptions and limitations (some API simply will not work). This could be a double allocation, different caching or access behavior - if you're trying to mix/share with 64bit processes this probably will not work at all. Without knowing the source of the error there's no way to say whether a rewrite is needed or not but obviously fewer things can/should cause problems if the native code is actually running in its native environment.
Post 13 Aug 2014, 21:03
View user's profile Send private message Reply with quote
typedef



Joined: 25 Jul 2010
Posts: 2909
Location: 0x77760000
typedef 13 Aug 2014, 21:31
You want to run it when Windows starts up. There's a registry key that allows you to do that but I forgot.
Post 13 Aug 2014, 21:31
View user's profile Send private message Reply with quote
KostX



Joined: 19 Sep 2012
Posts: 41
KostX 13 Aug 2014, 23:01
Quote:

There's a registry key that allows you to do that but I forgot.

Of course there is, I know, it's the HKEY_LOCAL_MACHINE\CurrentControlSet\Control\SessionManager\BootExecute

I can't understand, why it doesn' work? Application runs then failes with STOP: C0000145 {Application Error} The application was unable ti start correctly (0xC0000018). Click OK to close the application message on blue screen.

Perhaps, i need to run from 'sysWow64', instead 'System32'? I tried. Application actually does not running, eventhough I point full path to(include) file name.

I believe that there is the way to run 32-bit app on windows 64. As ACP gave the link http://en.wikipedia.org/wiki/WoW64 there I read the
Quote:
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
. It has to work, But I still can't understand what's wrong...
Post 13 Aug 2014, 23:01
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.