[PATCH 2/2] msi: Disable WoW redirection when installing a 64-bit package.
Zebediah Figura
z.figura12 at gmail.com
Wed May 2 10:10:29 CDT 2018
On 02/05/18 06:21, Hans Leidekker wrote:
>> --- a/dlls/msi/action.c
>> +++ b/dlls/msi/action.c
>> @@ -559,6 +559,7 @@ static UINT ACTION_ProcessExecSequence(MSIPACKAGE *package)
>> '`','S','e','q','u','e','n','c','e','`',' ', '>',' ','0',' ',
>> 'O','R','D','E','R',' ', 'B','Y',' ','`','S','e','q','u','e','n','c','e','`',0};
>> MSIQUERY *view;
>> + void *cookie;
>> UINT rc;
>>
>> if (package->ExecuteSequenceRun)
>> @@ -569,6 +570,9 @@ static UINT ACTION_ProcessExecSequence(MSIPACKAGE *package)
>>
>> package->ExecuteSequenceRun = TRUE;
>>
>> + if (is_wow64 && package->platform == PLATFORM_X64)
>> + Wow64DisableWow64FsRedirection(&cookie);
>> +
>> rc = MSI_OpenQuery(package->db, &view, query);
>> if (rc == ERROR_SUCCESS)
>> {
>> @@ -578,6 +582,10 @@ static UINT ACTION_ProcessExecSequence(MSIPACKAGE *package)
>> rc = MSI_IterateRecords(view, NULL, ITERATE_Actions, package);
>> msiobj_release(&view->hdr);
>> }
>> +
>> + if (is_wow64 && package->platform == PLATFORM_X64)
>> + Wow64RevertWow64FsRedirection(cookie);
>> +
>
> Installs can also be driven by MsiDoAction calls or by MsiSequence. It
> seems to me that ACTION_PerformAction would be the right place to do
> this.
>
>
>
Indeed, and upon further reflection I think we'd want to limit this to
standard actions. I'll send an updated patch.
More information about the wine-devel
mailing list