Hi,
I'm trying to get Skype 3.5.0.39 running on Wine (latest Git). The app however throws an 'Access violation at address 00593AD1 in module "Skype.exe". Read of address FFFFFFFF'.
I've set set the version to XP. I do find that when I apply this "patch":
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c index a08235a..d4349d7 100644 --- a/dlls/kernel32/process.c +++ b/dlls/kernel32/process.c @@ -2819,7 +2819,7 @@ BOOL WINAPI IsWow64Process(HANDLE hProcess, PBOOL Wow64Process) { FIXME("(%p %p) stub!\n", hProcess, Wow64Process); *Wow64Process = FALSE; - return TRUE; + return FALSE; }
the application has no issues starting up (several other issues remain).
Is this an exception that Windows catches and we don't perhaps? The application runs fine on my Windows XP box.
Tried to use several debugchannels but to no avail.
Hi Paul,
Paul Vriens schreef:
Hi,
I'm trying to get Skype 3.5.0.39 running on Wine (latest Git). The app however throws an 'Access violation at address 00593AD1 in module "Skype.exe". Read of address FFFFFFFF'.
I've set set the version to XP. I do find that when I apply this "patch":
If I read msdn correctly, the return value you have in that little patch is correct.
Return Value If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero. To get extended error information, call GetLastError.
If you do 'return 1;' it should work correctly, and it should be accepted into wine.
Cheers, Maarten.
"Maarten Lankhorst" m.b.lankhorst@gmail.com wrote:
Paul Vriens schreef:
Hi,
I'm trying to get Skype 3.5.0.39 running on Wine (latest Git). The app however throws an 'Access violation at address 00593AD1 in module "Skype.exe". Read of address FFFFFFFF'.
I've set set the version to XP. I do find that when I apply this "patch":
If I read msdn correctly, the return value you have in that little patch is correct.
Return Value If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero. To get extended error information, call GetLastError.
If you do 'return 1;' it should work correctly, and it should be accepted into wine.
Returning FALSE from IsWow64Process() indicates that there was some error, so the patch is no correct. Probably what should be changed is setting of *Wow64Process to TRUE instead of FALSE.
From MSDN:
If the application is a 64-bit application running under 64-bit Windows, the Wow64Process parameter is set to FALSE.
Paul, what values IsWow64Process() returns on your box? Is that 32-bit, or 64-bit machine?
Dmitry Timoshkov wrote:
"Maarten Lankhorst" m.b.lankhorst@gmail.com wrote:
Paul Vriens schreef:
Hi,
I'm trying to get Skype 3.5.0.39 running on Wine (latest Git). The app however throws an 'Access violation at address 00593AD1 in module "Skype.exe". Read of address FFFFFFFF'.
I've set set the version to XP. I do find that when I apply this "patch":
If I read msdn correctly, the return value you have in that little patch is correct.
Return Value If the function succeeds, the return value is a nonzero value. If the function fails, the return value is zero. To get extended error information, call GetLastError.
If you do 'return 1;' it should work correctly, and it should be accepted into wine.
Returning FALSE from IsWow64Process() indicates that there was some error, so the patch is no correct. Probably what should be changed is setting of *Wow64Process to TRUE instead of FALSE.
From MSDN:
If the application is a 64-bit application running under 64-bit Windows, the Wow64Process parameter is set to FALSE.
Paul, what values IsWow64Process() returns on your box? Is that 32-bit, or 64-bit machine?
(It wasn't meant as patch that's why I put it between quotes.)
What do you mean with "what values IsWow64Process() returns" ? This is hardcoded in process.c
I've checked with a quick test that the return value and the PBOOL give the same results on my Linux box (64-bit OS) as on my WinXP box (32-bit).
So I agree that the "patch" is not correct but it solves this issue (Skype probably takes a different path on error).
"Paul Vriens" paul.vriens.wine@gmail.com wrote:
Paul, what values IsWow64Process() returns on your box? Is that 32-bit, or 64-bit machine?
(It wasn't meant as patch that's why I put it between quotes.)
What do you mean with "what values IsWow64Process() returns" ? This is hardcoded in process.c
Sorry, meant to ask "on your XP box".
Dmitry Timoshkov wrote:
"Paul Vriens" paul.vriens.wine@gmail.com wrote:
Paul, what values IsWow64Process() returns on your box? Is that 32-bit, or 64-bit machine?
(It wasn't meant as patch that's why I put it between quotes.)
What do you mean with "what values IsWow64Process() returns" ? This is hardcoded in process.c
Sorry, meant to ask "on your XP box".
So as said, that's the same as on Wine.
I guess it's just because Skype takes a different path on error. Skype also continues when *Wow64Process is set to TRUE instead of FALSE.
So maybe it has nothing to do with it.
Running the app on Wine as W2K also fails with the same error but IsWow.. is not called there.