Module: wine Branch: master Commit: e32218fd3c78eb2eb8cde18d70c25b671ae3076f URL: http://source.winehq.org/git/wine.git/?a=commit;h=e32218fd3c78eb2eb8cde18d70... Author: Paul Vriens <Paul.Vriens.Wine(a)gmail.com> Date: Mon Nov 16 11:59:57 2009 +0100 advapi32/tests: Fix a test failure with Wow64. --- dlls/advapi32/tests/eventlog.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/dlls/advapi32/tests/eventlog.c b/dlls/advapi32/tests/eventlog.c index d7e2dba..f94b0a7 100644 --- a/dlls/advapi32/tests/eventlog.c +++ b/dlls/advapi32/tests/eventlog.c @@ -31,13 +31,19 @@ static BOOL (WINAPI *pCreateWellKnownSid)(WELL_KNOWN_SID_TYPE,PSID,PSID,DWORD*); static BOOL (WINAPI *pGetEventLogInformation)(HANDLE,DWORD,LPVOID,DWORD,LPDWORD); +static BOOL (WINAPI *pWow64DisableWow64FsRedirection)(PVOID *); +static BOOL (WINAPI *pWow64RevertWow64FsRedirection)(PVOID); static void init_function_pointers(void) { HMODULE hadvapi32 = GetModuleHandleA("advapi32.dll"); + HMODULE hkernel32 = GetModuleHandleA("kernel32.dll"); pCreateWellKnownSid = (void*)GetProcAddress(hadvapi32, "CreateWellKnownSid"); pGetEventLogInformation = (void*)GetProcAddress(hadvapi32, "GetEventLogInformation"); + + pWow64DisableWow64FsRedirection = (void*)GetProcAddress(hkernel32, "Wow64DisableWow64FsRedirection"); + pWow64RevertWow64FsRedirection = (void*)GetProcAddress(hkernel32, "Wow64RevertWow64FsRedirection"); } static void create_backup(const char *filename) @@ -945,6 +951,7 @@ static void test_autocreation(void) char *p; char sources[sizeof(eventsources)]; char sysdir[MAX_PATH]; + void *redir = 0; RegOpenKeyA(HKEY_LOCAL_MACHINE, eventlogsvc, &key); RegOpenKeyA(key, eventlogname, &eventkey); @@ -974,6 +981,10 @@ static void test_autocreation(void) RegCloseKey(eventkey); RegCloseKey(key); + /* The directory that holds the eventlog files could be redirected */ + if (pWow64DisableWow64FsRedirection) + pWow64DisableWow64FsRedirection(&redir); + /* On Windows we also automatically get an eventlog file */ GetSystemDirectoryA(sysdir, sizeof(sysdir)); @@ -994,6 +1005,9 @@ static void test_autocreation(void) ok(GetFileAttributesA(eventlogfile) != INVALID_FILE_ATTRIBUTES, "Expected an eventlog file\n"); + + if (pWow64RevertWow64FsRedirection) + pWow64RevertWow64FsRedirection(redir); } static void cleanup_eventlog(void)