cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Christoph
Level 8

Windows Installer has stopped working

I have a basic msi running on windows 2008.

I execute this piece of code during maintenance mode:

Window = FindWindow("", launchername);
if (Window != NULL) then
Result = SendMessage(Window, WM_QUIT, 0, 0);
endif;


This for closing down an application window that can be running after our initial install.

When I execute this code, I always get an error from windows 'Windows installer has stopped working'.
The problem details looks like this:

Problem signature:
Problem Event Name: BEX
Application Name: MsiExec.exe
Application Version: 4.5.6001.22162
Application Timestamp: 48080879
Fault Module Name: StackHash_8952
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 00000000
Exception Offset: 113fc692
Exception Code: c0000005
Exception Data: 00000008
OS Version: 6.0.6001.2.1.0.272.7
Locale ID: 1033
Additional Information 1: 8952
Additional Information 2: 03ee8c0c9ae07721143a3d0082ce4085
Additional Information 3: 8952
Additional Information 4: 03ee8c0c9ae07721143a3d0082ce4085

Read our privacy statement:
http://go.microsoft.com/fwlink/?linkid=50163&clcid=0x0409



I noticed that this occurs only on windows 2008.
I already tried to turn of DEP but this doesn't help(maybe because you can't turn off DEP for msiexec.exe?).

Anyone? I'm out of ideas... 😞
Labels (1)
0 Kudos
(2) Replies
Christoph
Level 8

Some more extended information:

I use an InstallShield 2008 Premier Basic MSI project(with installscript custom actions).

I have encountered a scenario where I have all the time a windows installer crash(DEP).
The problem seems only to occur on a Windows 2008 system.

The situation where I can reproduce the problem everytime is the following:

CustomAction1:
- Begin CustomAction1
- load an external dll(one of ours).
- call function1 in it
- End CustomAction2

CustomAction2:
- Begin CustomAction2
- load the same external dll again as Installshield 2008 initializes the deinitializes the installscript engine when an new customaction is called. Therefore Installshield itself unloads all dll's that where loaded during customaction1
- call function2 in it ==> CRASH!

A dialog appears with the message: Windows Installer has stopped working and in the system tray an icons pop up with information about DEP(Data Execution Prevention). I can click close on the crash dialog and the installer continues but it didn't finish the installscript custom action where it crashed. It continues with the next (installscript) custom action in line.

The logfile tells me this:
Action 14:47:02: OnValidateMulti_Device.
Action start 14:47:02: OnValidateMulti_Device.
MSI (c) (1C:E4) [14:47:02:206]: Note: 1: 2235 2: 3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'OnValidateMulti_Device'
MSI (c) (1C:48) [14:47:02:256]: Invoking remote custom action. DLL: C:\Users\FRAMEW~1\AppData\Local\Temp\MSI706E.tmp, Entrypoint: f9
MSI (c) (1C:48) [14:55:07:576]: Leaked MSIHANDLE (11447) of type 790541 for thread 10136
Action ended 14:55:07: OnValidateMulti_Device. Return value 1.



I found on the forum a post that seems to be related to my problem (http://community.flexerasoftware.com/showthread.php?t=182894&page=2&highlight=unusedll) but in my situation it causes the crash when the control is still to(in) the dll I call.

The strange thing is that when I call function2(that cause a crash) in customaction1, it works fine.
For some reason it seems to me that something goes wrong with installshield deinitializing the custom action(and so all loaded dll's). Maybe some handles stay open or something?

Does someone have any idea what can be wrong as I don't see a solution.
0 Kudos
Christoph
Level 8

Problem solved.
Had to do with an deinitialize issue within our dll we wrote to use in our installer.
0 Kudos