[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