From 8b97263daee7f17fdb2e9f47e654096c6d82aed8 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 21 May 2008 14:23:29 +0200 Subject: [PATCH] kernel32: Fix the profile file sharing modes. Based on a patch by Louis Lenders. --- dlls/kernel32/profile.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/dlls/kernel32/profile.c b/dlls/kernel32/profile.c index f58a9891e01..a412e1e6dcf 100644 --- a/dlls/kernel32/profile.c +++ b/dlls/kernel32/profile.c @@ -666,7 +666,8 @@ static BOOL PROFILE_FlushFile(void) if (!CurProfile->changed) return TRUE; - hFile = CreateFileW(CurProfile->filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + hFile = CreateFileW(CurProfile->filename, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { @@ -752,9 +753,10 @@ static BOOL PROFILE_Open( LPCWSTR filename ) } TRACE("path: %s\n", debugstr_w(buffer)); - - hFile = CreateFileW(buffer, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); - + + hFile = CreateFileW(buffer, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, + NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); + if ((hFile == INVALID_HANDLE_VALUE) && (GetLastError() != ERROR_FILE_NOT_FOUND)) { WARN("Error %d opening file %s\n", GetLastError(), debugstr_w(buffer));