Jacek Caban : kernel32: Pass SYNCHRONIZE access flag to NtCreateFile.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Oct 29 09:32:12 CDT 2015


Module: wine
Branch: master
Commit: 0c8edbcc80846f9523ac7164a78517c103edd43b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0c8edbcc80846f9523ac7164a78517c103edd43b

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Oct 29 11:52:06 2015 +0100

kernel32: Pass SYNCHRONIZE access flag to NtCreateFile.

Office clicktorun patched ntdll functions expect them to be set.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/file.c | 8 ++++----
 dlls/kernel32/path.c | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c
index ee43b10..5ea024f 100644
--- a/dlls/kernel32/file.c
+++ b/dlls/kernel32/file.c
@@ -1574,7 +1574,7 @@ HANDLE WINAPI CreateFileW( LPCWSTR filename, DWORD access, DWORD sharing,
 
     if (sa && sa->bInheritHandle) attr.Attributes |= OBJ_INHERIT;
 
-    status = NtCreateFile( &ret, access, &attr, &io, NULL, attributes,
+    status = NtCreateFile( &ret, access | SYNCHRONIZE, &attr, &io, NULL, attributes,
                            sharing, nt_disposition[creation - CREATE_NEW],
                            options, NULL, 0 );
     if (status)
@@ -1683,7 +1683,7 @@ BOOL WINAPI DeleteFileW( LPCWSTR path )
     attr.SecurityDescriptor = NULL;
     attr.SecurityQualityOfService = NULL;
 
-    status = NtCreateFile(&hFile, GENERIC_READ | GENERIC_WRITE | DELETE,
+    status = NtCreateFile(&hFile, GENERIC_READ | GENERIC_WRITE | SYNCHRONIZE | DELETE,
 			  &attr, &io, NULL, 0,
 			  FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
 			  FILE_OPEN, FILE_DELETE_ON_CLOSE | FILE_NON_DIRECTORY_FILE, NULL, 0);
@@ -1826,7 +1826,7 @@ BOOL WINAPI ReplaceFileW(LPCWSTR lpReplacedFileName, LPCWSTR lpReplacementFileNa
         }
         attr.ObjectName = &nt_backup_name;
         /* Open the backup with permissions to write over it */
-        status = NtCreateFile(&hBackup, GENERIC_WRITE,
+        status = NtCreateFile(&hBackup, GENERIC_WRITE | SYNCHRONIZE,
                               &attr, &io, NULL, replaced_info.FileAttributes,
                               FILE_SHARE_WRITE, FILE_OPEN_IF,
                               FILE_SYNCHRONOUS_IO_NONALERT|FILE_NON_DIRECTORY_FILE,
@@ -2835,7 +2835,7 @@ HANDLE WINAPI OpenFileById( HANDLE handle, LPFILE_ID_DESCRIPTOR id, DWORD access
     attr.SecurityQualityOfService = NULL;
     if (sec_attr && sec_attr->bInheritHandle) attr.Attributes |= OBJ_INHERIT;
 
-    status = NtCreateFile( &result, access, &attr, &io, NULL, flags,
+    status = NtCreateFile( &result, access | SYNCHRONIZE, &attr, &io, NULL, flags,
                            share, OPEN_EXISTING, options, NULL, 0 );
     if (status != STATUS_SUCCESS)
     {
diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c
index 09b8b7f..271bcf4 100644
--- a/dlls/kernel32/path.c
+++ b/dlls/kernel32/path.c
@@ -1562,7 +1562,7 @@ BOOL WINAPI CreateDirectoryW( LPCWSTR path, LPSECURITY_ATTRIBUTES sa )
     attr.SecurityDescriptor = sa ? sa->lpSecurityDescriptor : NULL;
     attr.SecurityQualityOfService = NULL;
 
-    status = NtCreateFile( &handle, GENERIC_READ, &attr, &io, NULL,
+    status = NtCreateFile( &handle, GENERIC_READ | SYNCHRONIZE, &attr, &io, NULL,
                            FILE_ATTRIBUTE_NORMAL, FILE_SHARE_READ, FILE_CREATE,
                            FILE_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT, NULL, 0 );
 




More information about the wine-cvs mailing list