From 6e919882322233a1b433e2f051612ae1a6a92f24 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 15 Jan 2016 21:13:24 +0100 Subject: [PATCH] Rebase against 3198fb0c1c3779882944659d52a676319ffcc68d. --- ...ing-if-message-mode-is-not-supported.patch | 36 +-- ...storing-DOS-attributes-in-NtCreateFi.patch | 53 ++-- ...l-Use-wrapper-functions-for-syscalls.patch | 252 +++++++++--------- patches/patchinstall.sh | 2 +- ...-support-for-global-and-local-shared.patch | 32 +-- 5 files changed, 186 insertions(+), 189 deletions(-) diff --git a/patches/kernel32-Named_Pipe/0005-server-Show-warning-if-message-mode-is-not-supported.patch b/patches/kernel32-Named_Pipe/0005-server-Show-warning-if-message-mode-is-not-supported.patch index 3bfb1fd6..047b429d 100644 --- a/patches/kernel32-Named_Pipe/0005-server-Show-warning-if-message-mode-is-not-supported.patch +++ b/patches/kernel32-Named_Pipe/0005-server-Show-warning-if-message-mode-is-not-supported.patch @@ -1,4 +1,4 @@ -From db0a81d0a3513d169335286471969b1fb9c38be1 Mon Sep 17 00:00:00 2001 +From f86aa112cd8f4f4372ea065866f2a98afa5d9d3b Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Mon, 4 Aug 2014 00:29:26 +0200 Subject: server: Show warning if message mode is not supported. @@ -13,20 +13,20 @@ missing message mode support. 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index 5232027..01cef2c 100644 +index cd34194..45ff692 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c -@@ -3091,6 +3091,7 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access, - { - struct security_descriptor *sd = NULL; - struct object_attributes objattr; -+ unsigned int flags; +@@ -3507,6 +3507,7 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access, NTSTATUS status; + data_size_t len; + struct object_attributes *objattr; ++ unsigned int flags; TRACE("(%p %x %s %p %x %d %x %d %d %d %d %d %d %p)\n", -@@ -3109,16 +3110,17 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access, - status = NTDLL_create_struct_sd( attr->SecurityDescriptor, &sd, &objattr.sd_len ); - if (status != STATUS_SUCCESS) return status; + handle, access, debugstr_w(attr->ObjectName->Buffer), iosb, sharing, dispo, +@@ -3519,16 +3520,17 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access, + + if ((status = alloc_object_attributes( attr, &objattr, &len ))) return status; + flags = (pipe_type ? NAMED_PIPE_MESSAGE_STREAM_WRITE : 0) | + (read_mode ? NAMED_PIPE_MESSAGE_STREAM_READ : 0) | @@ -46,8 +46,8 @@ index 5232027..01cef2c 100644 req->maxinstances = max_inst; req->outsize = outbound_quota; req->insize = inbound_quota; -@@ -3128,9 +3130,13 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access, - wine_server_add_data( req, attr->ObjectName->Buffer, attr->ObjectName->Length ); +@@ -3536,9 +3538,13 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access, + wine_server_add_data( req, objattr, len ); status = wine_server_call( req ); if (!status) *handle = wine_server_ptr_handle( reply->handle ); + flags &= ~reply->flags; /* contains now all unsupported flags */ @@ -57,14 +57,14 @@ index 5232027..01cef2c 100644 + if (!status && (flags & (NAMED_PIPE_MESSAGE_STREAM_WRITE | NAMED_PIPE_MESSAGE_STREAM_READ))) + FIXME("Message mode not supported, falling back to byte mode.\n"); + - NTDLL_free_struct_sd( sd ); + RtlFreeHeap( GetProcessHeap(), 0, objattr ); return status; } diff --git a/server/named_pipe.c b/server/named_pipe.c -index 047b62c..81741de 100644 +index 8d5753a..79ca3a1 100644 --- a/server/named_pipe.c +++ b/server/named_pipe.c -@@ -965,6 +965,7 @@ DECL_HANDLER(create_named_pipe) +@@ -933,6 +933,7 @@ DECL_HANDLER(create_named_pipe) return; } @@ -73,10 +73,10 @@ index 047b62c..81741de 100644 if (!objattr_is_valid( objattr, get_req_data_size() )) diff --git a/server/protocol.def b/server/protocol.def -index fc6bec5..503b02f 100644 +index ea5bd61..e83e65e 100644 --- a/server/protocol.def +++ b/server/protocol.def -@@ -2283,6 +2283,7 @@ enum message_type +@@ -2382,6 +2382,7 @@ enum message_type unsigned int flags; VARARG(objattr,object_attributes); /* object attributes */ @REPLY @@ -85,5 +85,5 @@ index fc6bec5..503b02f 100644 @END -- -2.1.3 +2.6.4 diff --git a/patches/ntdll-DOS_Attributes/0004-ntdll-Implement-storing-DOS-attributes-in-NtCreateFi.patch b/patches/ntdll-DOS_Attributes/0004-ntdll-Implement-storing-DOS-attributes-in-NtCreateFi.patch index b92ab160..2202e5f3 100644 --- a/patches/ntdll-DOS_Attributes/0004-ntdll-Implement-storing-DOS-attributes-in-NtCreateFi.patch +++ b/patches/ntdll-DOS_Attributes/0004-ntdll-Implement-storing-DOS-attributes-in-NtCreateFi.patch @@ -1,17 +1,17 @@ -From e3b53e0794d83fc9eb39d78ca673c9144dd9873d Mon Sep 17 00:00:00 2001 +From ab880fafaf84e637a978a39488413b25e32f5217 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Wed, 20 Aug 2014 15:28:00 -0600 Subject: ntdll: Implement storing DOS attributes in NtCreateFile. --- - dlls/ntdll/file.c | 79 ++++++++++++++++++++++++++++---------------- - dlls/ntdll/tests/directory.c | 24 +++++--------- + dlls/ntdll/file.c | 76 ++++++++++++++++++++++++++++---------------- + dlls/ntdll/tests/directory.c | 24 ++++++-------- include/wine/port.h | 2 ++ - libs/port/xattr.c | 20 +++++++++++ - 4 files changed, 81 insertions(+), 44 deletions(-) + libs/port/xattr.c | 20 ++++++++++++ + 4 files changed, 80 insertions(+), 42 deletions(-) diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index 7e32087..dd38995 100644 +index a5fbda7..a22ca20 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c @@ -219,6 +219,21 @@ int get_file_info( const char *path, struct stat *st, ULONG *attr ) @@ -36,29 +36,29 @@ index 7e32087..dd38995 100644 /************************************************************************** * FILE_CreateFile (internal) * Open a file. -@@ -230,6 +245,8 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT +@@ -230,6 +245,9 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT ULONG attributes, ULONG sharing, ULONG disposition, ULONG options, PVOID ea_buffer, ULONG ea_length ) { -+ struct object_attributes objattr; -+ struct security_descriptor *sd; ++ OBJECT_ATTRIBUTES unix_attr; ++ data_size_t len; ++ struct object_attributes *objattr; ANSI_STRING unix_name; BOOL created = FALSE; -@@ -273,39 +290,37 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT +@@ -273,37 +291,35 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT io->u.Status = STATUS_SUCCESS; } - if (io->u.Status == STATUS_SUCCESS) + if (io->u.Status != STATUS_SUCCESS) { -- struct security_descriptor *sd; -- struct object_attributes objattr; +- OBJECT_ATTRIBUTES unix_attr = *attr; +- data_size_t len; +- struct object_attributes *objattr; - -- objattr.rootdir = wine_server_obj_handle( attr->RootDirectory ); -- objattr.name_len = 0; -- io->u.Status = NTDLL_create_struct_sd( attr->SecurityDescriptor, &sd, &objattr.sd_len ); -- if (io->u.Status != STATUS_SUCCESS) +- unix_attr.ObjectName = NULL; /* we send the unix name instead */ +- if ((io->u.Status = alloc_object_attributes( &unix_attr, &objattr, &len ))) - { - RtlFreeAnsiString( &unix_name ); - return io->u.Status; @@ -75,18 +75,16 @@ index 7e32087..dd38995 100644 - req->create = disposition; - req->options = options; - req->attrs = attributes; -- wine_server_add_data( req, &objattr, sizeof(objattr) ); -- if (objattr.sd_len) wine_server_add_data( req, sd, objattr.sd_len ); +- wine_server_add_data( req, objattr, len ); - wine_server_add_data( req, unix_name.Buffer, unix_name.Length ); - io->u.Status = wine_server_call( req ); - *handle = wine_server_ptr_handle( reply->handle ); - } - SERVER_END_REQ; -- NTDLL_free_struct_sd( sd ); -+ objattr.rootdir = wine_server_obj_handle( attr->RootDirectory ); -+ objattr.name_len = 0; -+ io->u.Status = NTDLL_create_struct_sd( attr->SecurityDescriptor, &sd, &objattr.sd_len ); -+ if (io->u.Status != STATUS_SUCCESS) +- RtlFreeHeap( GetProcessHeap(), 0, objattr ); ++ unix_attr = *attr; ++ unix_attr.ObjectName = NULL; /* we send the unix name instead */ ++ if ((io->u.Status = alloc_object_attributes( &unix_attr, &objattr, &len ))) + { RtlFreeAnsiString( &unix_name ); + return io->u.Status; @@ -101,18 +99,17 @@ index 7e32087..dd38995 100644 + req->create = disposition; + req->options = options; + req->attrs = attributes; -+ wine_server_add_data( req, &objattr, sizeof(objattr) ); -+ if (objattr.sd_len) wine_server_add_data( req, sd, objattr.sd_len ); ++ wine_server_add_data( req, objattr, len ); + wine_server_add_data( req, unix_name.Buffer, unix_name.Length ); + io->u.Status = wine_server_call( req ); + *handle = wine_server_ptr_handle( reply->handle ); + } + SERVER_END_REQ; -+ NTDLL_free_struct_sd( sd ); ++ RtlFreeHeap( GetProcessHeap(), 0, objattr ); if (io->u.Status == STATUS_SUCCESS) { -@@ -327,6 +342,11 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT +@@ -325,6 +341,11 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT io->Information = FILE_OVERWRITTEN; break; } @@ -124,7 +121,7 @@ index 7e32087..dd38995 100644 } else if (io->u.Status == STATUS_TOO_MANY_OPENED_FILES) { -@@ -334,6 +354,7 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT +@@ -332,6 +353,7 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT if (!once++) ERR_(winediag)( "Too many open files, ulimit -n probably needs to be increased\n" ); } diff --git a/patches/ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch b/patches/ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch index a1c69246..afd8cded 100644 --- a/patches/ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch +++ b/patches/ntdll-Syscall_Wrappers/0002-ntdll-Use-wrapper-functions-for-syscalls.patch @@ -1,4 +1,4 @@ -From 1a0efd8b70bcf35e4e12326ba77bfd93b4bf0367 Mon Sep 17 00:00:00 2001 +From 0c74521fb24feb6e7a4dcf6fcf8d3b6bc0736813 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Fri, 16 Oct 2015 02:32:58 +0200 Subject: ntdll: Use wrapper functions for syscalls. @@ -81,10 +81,10 @@ index 304b7f6..222fde9 100644 { NTSTATUS status; diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c -index 4faafe9..770cd3f 100644 +index f3c6aa2..cb552bd 100644 --- a/dlls/ntdll/directory.c +++ b/dlls/ntdll/directory.c -@@ -2236,7 +2236,8 @@ done: +@@ -2210,7 +2210,8 @@ done: * NtQueryDirectoryFile [NTDLL.@] * ZwQueryDirectoryFile [NTDLL.@] */ @@ -141,10 +141,10 @@ index 5c42010..12b2995 100644 HARDERROR_RESPONSE_OPTION ResponseOption, PHARDERROR_RESPONSE Response ) { diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index 1027b54..1cde19c 100644 +index 4cac2ca..2db1095 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c -@@ -298,7 +298,8 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT +@@ -295,7 +295,8 @@ static NTSTATUS FILE_CreateFile( PHANDLE handle, ACCESS_MASK access, POBJECT_ATT * Success: 0. FileHandle and IoStatusBlock are updated. * Failure: An NTSTATUS error code describing the error. */ @@ -154,7 +154,7 @@ index 1027b54..1cde19c 100644 POBJECT_ATTRIBUTES attr, PIO_STATUS_BLOCK io, ULONG sharing, ULONG options ) { -@@ -330,7 +331,8 @@ NTSTATUS WINAPI NtOpenFile( PHANDLE handle, ACCESS_MASK access, +@@ -327,7 +328,8 @@ NTSTATUS WINAPI NtOpenFile( PHANDLE handle, ACCESS_MASK access, * Success: 0. handle and io are updated. * Failure: An NTSTATUS error code describing the error. */ @@ -164,7 +164,7 @@ index 1027b54..1cde19c 100644 PIO_STATUS_BLOCK io, PLARGE_INTEGER alloc_size, ULONG attributes, ULONG sharing, ULONG disposition, ULONG options, PVOID ea_buffer, ULONG ea_length ) -@@ -800,7 +802,8 @@ static NTSTATUS get_io_avail_mode( HANDLE handle, enum server_fd_type type, BOOL +@@ -791,7 +793,8 @@ static NTSTATUS get_io_avail_mode( HANDLE handle, enum server_fd_type type, BOOL * The number of bytes read. * Failure: An NTSTATUS error code describing the error. */ @@ -174,7 +174,7 @@ index 1027b54..1cde19c 100644 PIO_APC_ROUTINE apc, void* apc_user, PIO_STATUS_BLOCK io_status, void* buffer, ULONG length, PLARGE_INTEGER offset, PULONG key) -@@ -1011,7 +1014,8 @@ err: +@@ -1002,7 +1005,8 @@ err: * NtReadFileScatter [NTDLL.@] * ZwReadFileScatter [NTDLL.@] */ @@ -184,7 +184,7 @@ index 1027b54..1cde19c 100644 PIO_STATUS_BLOCK io_status, FILE_SEGMENT_ELEMENT *segments, ULONG length, PLARGE_INTEGER offset, PULONG key ) { -@@ -1183,7 +1187,8 @@ static NTSTATUS set_pending_write( HANDLE device ) +@@ -1174,7 +1178,8 @@ static NTSTATUS set_pending_write( HANDLE device ) * The number of bytes written. * Failure: An NTSTATUS error code describing the error. */ @@ -194,7 +194,7 @@ index 1027b54..1cde19c 100644 PIO_APC_ROUTINE apc, void* apc_user, PIO_STATUS_BLOCK io_status, const void* buffer, ULONG length, -@@ -1417,7 +1422,8 @@ err: +@@ -1408,7 +1413,8 @@ err: * NtWriteFileGather [NTDLL.@] * ZwWriteFileGather [NTDLL.@] */ @@ -204,7 +204,7 @@ index 1027b54..1cde19c 100644 PIO_STATUS_BLOCK io_status, FILE_SEGMENT_ELEMENT *segments, ULONG length, PLARGE_INTEGER offset, PULONG key ) { -@@ -1606,7 +1612,8 @@ static void ignore_server_ioctl_struct_holes (ULONG code, const void *in_buffer, +@@ -1597,7 +1603,8 @@ static void ignore_server_ioctl_struct_holes (ULONG code, const void *in_buffer, * Success: 0. IoStatusBlock is updated. * Failure: An NTSTATUS error code describing the error. */ @@ -214,7 +214,7 @@ index 1027b54..1cde19c 100644 PIO_APC_ROUTINE apc, PVOID apc_context, PIO_STATUS_BLOCK io, ULONG code, PVOID in_buffer, ULONG in_size, -@@ -1670,7 +1677,8 @@ NTSTATUS WINAPI NtDeviceIoControlFile(HANDLE handle, HANDLE event, +@@ -1661,7 +1668,8 @@ NTSTATUS WINAPI NtDeviceIoControlFile(HANDLE handle, HANDLE event, * Success: 0. IoStatusBlock is updated. * Failure: An NTSTATUS error code describing the error. */ @@ -224,7 +224,7 @@ index 1027b54..1cde19c 100644 PVOID apc_context, PIO_STATUS_BLOCK io, ULONG code, PVOID in_buffer, ULONG in_size, PVOID out_buffer, ULONG out_size) { -@@ -1913,7 +1921,8 @@ static NTSTATUS read_changes_apc( void *user, IO_STATUS_BLOCK *iosb, +@@ -1904,7 +1912,8 @@ static NTSTATUS read_changes_apc( void *user, IO_STATUS_BLOCK *iosb, /****************************************************************************** * NtNotifyChangeDirectoryFile [NTDLL.@] */ @@ -234,7 +234,7 @@ index 1027b54..1cde19c 100644 void *apc_context, PIO_STATUS_BLOCK iosb, void *buffer, ULONG buffer_size, ULONG filter, BOOLEAN subtree ) { -@@ -1972,7 +1981,8 @@ NTSTATUS WINAPI NtNotifyChangeDirectoryFile( HANDLE handle, HANDLE event, PIO_AP +@@ -1963,7 +1972,8 @@ NTSTATUS WINAPI NtNotifyChangeDirectoryFile( HANDLE handle, HANDLE event, PIO_AP * Success: 0. IoStatusBlock is updated. * Failure: An NTSTATUS error code describing the error. */ @@ -244,7 +244,7 @@ index 1027b54..1cde19c 100644 IN HANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock, PVOID FsInformation, -@@ -2277,7 +2287,8 @@ static NTSTATUS fill_name_info( const ANSI_STRING *unix_name, FILE_NAME_INFORMAT +@@ -2268,7 +2278,8 @@ static NTSTATUS fill_name_info( const ANSI_STRING *unix_name, FILE_NAME_INFORMAT * Success: 0. IoStatusBlock and FileInformation are updated. * Failure: An NTSTATUS error code describing the error. */ @@ -254,7 +254,7 @@ index 1027b54..1cde19c 100644 PVOID ptr, LONG len, FILE_INFORMATION_CLASS class ) { static const size_t info_sizes[] = -@@ -2603,7 +2614,8 @@ NTSTATUS WINAPI NtQueryInformationFile( HANDLE hFile, PIO_STATUS_BLOCK io, +@@ -2594,7 +2605,8 @@ NTSTATUS WINAPI NtQueryInformationFile( HANDLE hFile, PIO_STATUS_BLOCK io, * Success: 0. io is updated. * Failure: An NTSTATUS error code describing the error. */ @@ -264,7 +264,7 @@ index 1027b54..1cde19c 100644 PVOID ptr, ULONG len, FILE_INFORMATION_CLASS class) { int fd, needs_close; -@@ -2900,7 +2912,8 @@ NTSTATUS WINAPI NtSetInformationFile(HANDLE handle, PIO_STATUS_BLOCK io, +@@ -2891,7 +2903,8 @@ NTSTATUS WINAPI NtSetInformationFile(HANDLE handle, PIO_STATUS_BLOCK io, /****************************************************************************** * NtQueryFullAttributesFile (NTDLL.@) */ @@ -274,7 +274,7 @@ index 1027b54..1cde19c 100644 FILE_NETWORK_OPEN_INFORMATION *info ) { ANSI_STRING unix_name; -@@ -2944,7 +2957,8 @@ NTSTATUS WINAPI NtQueryFullAttributesFile( const OBJECT_ATTRIBUTES *attr, +@@ -2935,7 +2948,8 @@ NTSTATUS WINAPI NtQueryFullAttributesFile( const OBJECT_ATTRIBUTES *attr, * NtQueryAttributesFile (NTDLL.@) * ZwQueryAttributesFile (NTDLL.@) */ @@ -284,7 +284,7 @@ index 1027b54..1cde19c 100644 { ANSI_STRING unix_name; NTSTATUS status; -@@ -3165,7 +3179,8 @@ static NTSTATUS get_device_info( int fd, FILE_FS_DEVICE_INFORMATION *info ) +@@ -3156,7 +3170,8 @@ static NTSTATUS get_device_info( int fd, FILE_FS_DEVICE_INFORMATION *info ) * Success: 0. io and buffer are updated. * Failure: An NTSTATUS error code describing the error. */ @@ -294,7 +294,7 @@ index 1027b54..1cde19c 100644 PVOID buffer, ULONG length, FS_INFORMATION_CLASS info_class ) { -@@ -3313,7 +3328,8 @@ NTSTATUS WINAPI NtQueryVolumeInformationFile( HANDLE handle, PIO_STATUS_BLOCK io +@@ -3304,7 +3319,8 @@ NTSTATUS WINAPI NtQueryVolumeInformationFile( HANDLE handle, PIO_STATUS_BLOCK io * Success: 0. Atrributes read into buffer * Failure: An NTSTATUS error code describing the error. */ @@ -304,7 +304,7 @@ index 1027b54..1cde19c 100644 BOOLEAN single_entry, PVOID ea_list, ULONG ea_list_len, PULONG ea_index, BOOLEAN restart ) { -@@ -3339,7 +3355,8 @@ NTSTATUS WINAPI NtQueryEaFile( HANDLE hFile, PIO_STATUS_BLOCK iosb, PVOID buffer +@@ -3330,7 +3346,8 @@ NTSTATUS WINAPI NtQueryEaFile( HANDLE hFile, PIO_STATUS_BLOCK iosb, PVOID buffer * Success: 0. Attributes are updated * Failure: An NTSTATUS error code describing the error. */ @@ -314,7 +314,7 @@ index 1027b54..1cde19c 100644 { FIXME("(%p,%p,%p,%d) stub\n", hFile, iosb, buffer, length); return STATUS_ACCESS_DENIED; -@@ -3359,7 +3376,8 @@ NTSTATUS WINAPI NtSetEaFile( HANDLE hFile, PIO_STATUS_BLOCK iosb, PVOID buffer, +@@ -3350,7 +3367,8 @@ NTSTATUS WINAPI NtSetEaFile( HANDLE hFile, PIO_STATUS_BLOCK iosb, PVOID buffer, * Success: 0. IoStatusBlock is updated. * Failure: An NTSTATUS error code describing the error. */ @@ -324,7 +324,7 @@ index 1027b54..1cde19c 100644 { NTSTATUS ret; HANDLE hEvent = NULL; -@@ -3401,7 +3419,8 @@ NTSTATUS WINAPI NtFlushBuffersFile( HANDLE hFile, IO_STATUS_BLOCK* IoStatusBlock +@@ -3392,7 +3410,8 @@ NTSTATUS WINAPI NtFlushBuffersFile( HANDLE hFile, IO_STATUS_BLOCK* IoStatusBlock * * */ @@ -334,7 +334,7 @@ index 1027b54..1cde19c 100644 PIO_APC_ROUTINE apc, void* apc_user, PIO_STATUS_BLOCK io_status, PLARGE_INTEGER offset, PLARGE_INTEGER count, ULONG* key, BOOLEAN dont_wait, -@@ -3473,7 +3492,8 @@ NTSTATUS WINAPI NtLockFile( HANDLE hFile, HANDLE lock_granted_event, +@@ -3464,7 +3483,8 @@ NTSTATUS WINAPI NtLockFile( HANDLE hFile, HANDLE lock_granted_event, * * */ @@ -344,7 +344,7 @@ index 1027b54..1cde19c 100644 PLARGE_INTEGER offset, PLARGE_INTEGER count, PULONG key ) { -@@ -3504,7 +3524,8 @@ NTSTATUS WINAPI NtUnlockFile( HANDLE hFile, PIO_STATUS_BLOCK io_status, +@@ -3495,7 +3515,8 @@ NTSTATUS WINAPI NtUnlockFile( HANDLE hFile, PIO_STATUS_BLOCK io_status, * * */ @@ -354,7 +354,7 @@ index 1027b54..1cde19c 100644 POBJECT_ATTRIBUTES attr, PIO_STATUS_BLOCK iosb, ULONG sharing, ULONG dispo, ULONG options, ULONG pipe_type, ULONG read_mode, -@@ -3563,7 +3584,8 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access, +@@ -3546,7 +3567,8 @@ NTSTATUS WINAPI NtCreateNamedPipeFile( PHANDLE handle, ULONG access, * * */ @@ -364,7 +364,7 @@ index 1027b54..1cde19c 100644 { NTSTATUS status; HANDLE hFile; -@@ -3583,7 +3605,8 @@ NTSTATUS WINAPI NtDeleteFile( POBJECT_ATTRIBUTES ObjectAttributes ) +@@ -3566,7 +3588,8 @@ NTSTATUS WINAPI NtDeleteFile( POBJECT_ATTRIBUTES ObjectAttributes ) * * */ @@ -374,7 +374,7 @@ index 1027b54..1cde19c 100644 { TRACE("%p %p %p\n", hFile, iosb, io_status ); -@@ -3604,7 +3627,8 @@ NTSTATUS WINAPI NtCancelIoFileEx( HANDLE hFile, PIO_STATUS_BLOCK iosb, PIO_STATU +@@ -3587,7 +3610,8 @@ NTSTATUS WINAPI NtCancelIoFileEx( HANDLE hFile, PIO_STATUS_BLOCK iosb, PIO_STATU * * */ @@ -384,7 +384,7 @@ index 1027b54..1cde19c 100644 { TRACE("%p %p\n", hFile, io_status ); -@@ -3637,7 +3661,8 @@ NTSTATUS WINAPI NtCancelIoFile( HANDLE hFile, PIO_STATUS_BLOCK io_status ) +@@ -3620,7 +3644,8 @@ NTSTATUS WINAPI NtCancelIoFile( HANDLE hFile, PIO_STATUS_BLOCK io_status ) * RETURNS * An NT status code */ @@ -419,7 +419,7 @@ index 74feb97..e5ea736 100644 FIXME("(%p), stub!\n",DriverServiceName); return STATUS_NOT_IMPLEMENTED; diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c -index 8ea1ddd..19d5b6e 100644 +index 9ee1923..af78461 100644 --- a/dlls/ntdll/nt.c +++ b/dlls/ntdll/nt.c @@ -74,7 +74,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(ntdll); @@ -642,7 +642,7 @@ index 8ea1ddd..19d5b6e 100644 IN SYSTEM_INFORMATION_CLASS SystemInformationClass, OUT PVOID SystemInformation, IN ULONG Length, -@@ -2142,7 +2164,8 @@ NTSTATUS WINAPI NtQuerySystemInformation( +@@ -2187,7 +2209,8 @@ NTSTATUS WINAPI NtQuerySystemInformationEx(SYSTEM_INFORMATION_CLASS SystemInform * NtSetSystemInformation [NTDLL.@] * ZwSetSystemInformation [NTDLL.@] */ @@ -652,7 +652,7 @@ index 8ea1ddd..19d5b6e 100644 { FIXME("(0x%08x,%p,0x%08x) stub\n",SystemInformationClass,SystemInformation,Length); return STATUS_SUCCESS; -@@ -2152,7 +2175,8 @@ NTSTATUS WINAPI NtSetSystemInformation(SYSTEM_INFORMATION_CLASS SystemInformatio +@@ -2197,7 +2220,8 @@ NTSTATUS WINAPI NtSetSystemInformation(SYSTEM_INFORMATION_CLASS SystemInformatio * NtCreatePagingFile [NTDLL.@] * ZwCreatePagingFile [NTDLL.@] */ @@ -662,7 +662,7 @@ index 8ea1ddd..19d5b6e 100644 PUNICODE_STRING PageFileName, PLARGE_INTEGER MinimumSize, PLARGE_INTEGER MaximumSize, -@@ -2167,7 +2191,8 @@ NTSTATUS WINAPI NtCreatePagingFile( +@@ -2212,7 +2236,8 @@ NTSTATUS WINAPI NtCreatePagingFile( * * writes a string to the nt-textmode screen eg. during startup */ @@ -672,7 +672,7 @@ index 8ea1ddd..19d5b6e 100644 { STRING stringA; NTSTATUS ret; -@@ -2184,7 +2209,8 @@ NTSTATUS WINAPI NtDisplayString ( PUNICODE_STRING string ) +@@ -2229,7 +2254,8 @@ NTSTATUS WINAPI NtDisplayString ( PUNICODE_STRING string ) * NtInitiatePowerAction [NTDLL.@] * */ @@ -682,7 +682,7 @@ index 8ea1ddd..19d5b6e 100644 IN POWER_ACTION SystemAction, IN SYSTEM_POWER_STATE MinSystemState, IN ULONG Flags, -@@ -2228,7 +2254,8 @@ static ULONG mhz_from_cpuinfo(void) +@@ -2273,7 +2299,8 @@ static ULONG mhz_from_cpuinfo(void) * NtPowerInformation [NTDLL.@] * */ @@ -692,7 +692,7 @@ index 8ea1ddd..19d5b6e 100644 IN POWER_INFORMATION_LEVEL InformationLevel, IN PVOID lpInputBuffer, IN ULONG nInputBufferSize, -@@ -2418,7 +2445,8 @@ NTSTATUS WINAPI NtPowerInformation( +@@ -2463,7 +2490,8 @@ NTSTATUS WINAPI NtPowerInformation( * NtShutdownSystem [NTDLL.@] * */ @@ -702,7 +702,7 @@ index 8ea1ddd..19d5b6e 100644 { FIXME("%d\n",Action); return STATUS_SUCCESS; -@@ -2427,7 +2455,8 @@ NTSTATUS WINAPI NtShutdownSystem(SHUTDOWN_ACTION Action) +@@ -2472,7 +2500,8 @@ NTSTATUS WINAPI NtShutdownSystem(SHUTDOWN_ACTION Action) /****************************************************************************** * NtAllocateLocallyUniqueId (NTDLL.@) */ @@ -712,7 +712,7 @@ index 8ea1ddd..19d5b6e 100644 { NTSTATUS status; -@@ -2485,7 +2514,8 @@ ULONGLONG WINAPI VerSetConditionMask( ULONGLONG dwlConditionMask, DWORD dwTypeBi +@@ -2530,7 +2559,8 @@ ULONGLONG WINAPI VerSetConditionMask( ULONGLONG dwlConditionMask, DWORD dwTypeBi * NtAccessCheckAndAuditAlarm (NTDLL.@) * ZwAccessCheckAndAuditAlarm (NTDLL.@) */ @@ -722,7 +722,7 @@ index 8ea1ddd..19d5b6e 100644 PUNICODE_STRING ObjectName, PSECURITY_DESCRIPTOR SecurityDescriptor, ACCESS_MASK DesiredAccess, PGENERIC_MAPPING GenericMapping, BOOLEAN ObjectCreation, PACCESS_MASK GrantedAccess, PBOOLEAN AccessStatus, PBOOLEAN GenerateOnClose) -@@ -2501,7 +2531,8 @@ NTSTATUS WINAPI NtAccessCheckAndAuditAlarm(PUNICODE_STRING SubsystemName, HANDLE +@@ -2546,7 +2576,8 @@ NTSTATUS WINAPI NtAccessCheckAndAuditAlarm(PUNICODE_STRING SubsystemName, HANDLE * NtSystemDebugControl (NTDLL.@) * ZwSystemDebugControl (NTDLL.@) */ @@ -733,10 +733,10 @@ index 8ea1ddd..19d5b6e 100644 { FIXME("(%d, %p, %d, %p, %d, %p), stub\n", command, inbuffer, inbuflength, outbuffer, outbuflength, retlength); diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h -index cbd19db..e3f902f 100644 +index 6683daa..b71e427 100644 --- a/dlls/ntdll/ntdll_misc.h +++ b/dlls/ntdll/ntdll_misc.h -@@ -262,6 +262,23 @@ extern HANDLE keyed_event DECLSPEC_HIDDEN; +@@ -259,6 +259,23 @@ extern HANDLE keyed_event DECLSPEC_HIDDEN; "ret $(4*" #args ")" ) /* fake ret to make copy protections happy */ #endif @@ -896,7 +896,7 @@ index 3fadba7..4fd0656 100644 FIXME("(%p), stub.\n", Handle); return STATUS_SUCCESS; diff --git a/dlls/ntdll/process.c b/dlls/ntdll/process.c -index ca9462a..37c08f1 100644 +index 5a5c3ef..c7a0a8a 100644 --- a/dlls/ntdll/process.c +++ b/dlls/ntdll/process.c @@ -53,7 +53,8 @@ static ULONG execute_flags = MEM_EXECUTE_OPTION_DISABLE; @@ -950,7 +950,7 @@ index ca9462a..37c08f1 100644 { NTSTATUS status; diff --git a/dlls/ntdll/reg.c b/dlls/ntdll/reg.c -index 0701426..b74c464 100644 +index be95a2a..3831d56 100644 --- a/dlls/ntdll/reg.c +++ b/dlls/ntdll/reg.c @@ -51,7 +51,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(reg); @@ -1039,7 +1039,7 @@ index 0701426..b74c464 100644 { NTSTATUS ret; -@@ -350,7 +359,8 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i +@@ -368,7 +377,8 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i * NOTES * the name copied into the buffer is NOT 0-terminated */ @@ -1049,7 +1049,7 @@ index 0701426..b74c464 100644 void *info, DWORD length, DWORD *result_len ) { /* -1 means query key, so avoid it here */ -@@ -409,7 +419,8 @@ NTSTATUS WINAPI RtlpNtEnumerateSubKey( HANDLE handle, UNICODE_STRING *out, ULONG +@@ -427,7 +437,8 @@ NTSTATUS WINAPI RtlpNtEnumerateSubKey( HANDLE handle, UNICODE_STRING *out, ULONG * NtQueryKey [NTDLL.@] * ZwQueryKey [NTDLL.@] */ @@ -1059,7 +1059,7 @@ index 0701426..b74c464 100644 void *info, DWORD length, DWORD *result_len ) { return enumerate_key( handle, -1, info_class, info, length, result_len ); -@@ -464,7 +475,8 @@ static void copy_key_value_info( KEY_VALUE_INFORMATION_CLASS info_class, void *i +@@ -482,7 +493,8 @@ static void copy_key_value_info( KEY_VALUE_INFORMATION_CLASS info_class, void *i * NtEnumerateValueKey [NTDLL.@] * ZwEnumerateValueKey [NTDLL.@] */ @@ -1069,7 +1069,7 @@ index 0701426..b74c464 100644 KEY_VALUE_INFORMATION_CLASS info_class, void *info, DWORD length, DWORD *result_len ) { -@@ -512,7 +524,8 @@ NTSTATUS WINAPI NtEnumerateValueKey( HANDLE handle, ULONG index, +@@ -530,7 +542,8 @@ NTSTATUS WINAPI NtEnumerateValueKey( HANDLE handle, ULONG index, * NOTES * the name in the KeyValueInformation is never set */ @@ -1079,7 +1079,7 @@ index 0701426..b74c464 100644 KEY_VALUE_INFORMATION_CLASS info_class, void *info, DWORD length, DWORD *result_len ) { -@@ -614,7 +627,8 @@ NTSTATUS WINAPI RtlpNtQueryValueKey( HANDLE handle, ULONG *result_type, PBYTE de +@@ -632,7 +645,8 @@ NTSTATUS WINAPI RtlpNtQueryValueKey( HANDLE handle, ULONG *result_type, PBYTE de * NtFlushKey [NTDLL.@] * ZwFlushKey [NTDLL.@] */ @@ -1089,7 +1089,7 @@ index 0701426..b74c464 100644 { NTSTATUS ret; -@@ -634,7 +648,8 @@ NTSTATUS WINAPI NtFlushKey(HANDLE key) +@@ -652,7 +666,8 @@ NTSTATUS WINAPI NtFlushKey(HANDLE key) * NtLoadKey [NTDLL.@] * ZwLoadKey [NTDLL.@] */ @@ -1099,7 +1099,7 @@ index 0701426..b74c464 100644 { NTSTATUS ret; HANDLE hive; -@@ -664,7 +679,8 @@ NTSTATUS WINAPI NtLoadKey( const OBJECT_ATTRIBUTES *attr, OBJECT_ATTRIBUTES *fil +@@ -682,7 +697,8 @@ NTSTATUS WINAPI NtLoadKey( const OBJECT_ATTRIBUTES *attr, OBJECT_ATTRIBUTES *fil * NtNotifyChangeMultipleKeys [NTDLL.@] * ZwNotifyChangeMultipleKeys [NTDLL.@] */ @@ -1109,7 +1109,7 @@ index 0701426..b74c464 100644 HANDLE KeyHandle, ULONG Count, OBJECT_ATTRIBUTES *SubordinateObjects, -@@ -720,7 +736,8 @@ NTSTATUS WINAPI NtNotifyChangeMultipleKeys( +@@ -738,7 +754,8 @@ NTSTATUS WINAPI NtNotifyChangeMultipleKeys( * NtNotifyChangeKey [NTDLL.@] * ZwNotifyChangeKey [NTDLL.@] */ @@ -1119,7 +1119,7 @@ index 0701426..b74c464 100644 IN HANDLE KeyHandle, IN HANDLE Event, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, -@@ -742,7 +759,8 @@ NTSTATUS WINAPI NtNotifyChangeKey( +@@ -760,7 +777,8 @@ NTSTATUS WINAPI NtNotifyChangeKey( * ZwQueryMultipleValueKey */ @@ -1129,7 +1129,7 @@ index 0701426..b74c464 100644 HANDLE KeyHandle, PKEY_MULTIPLE_VALUE_INFORMATION ListOfValuesToQuery, ULONG NumberOfItems, -@@ -760,7 +778,8 @@ NTSTATUS WINAPI NtQueryMultipleValueKey( +@@ -778,7 +796,8 @@ NTSTATUS WINAPI NtQueryMultipleValueKey( * NtReplaceKey [NTDLL.@] * ZwReplaceKey [NTDLL.@] */ @@ -1139,7 +1139,7 @@ index 0701426..b74c464 100644 IN POBJECT_ATTRIBUTES ObjectAttributes, IN HANDLE Key, IN POBJECT_ATTRIBUTES ReplacedObjectAttributes) -@@ -773,7 +792,8 @@ NTSTATUS WINAPI NtReplaceKey( +@@ -791,7 +810,8 @@ NTSTATUS WINAPI NtReplaceKey( * NtRestoreKey [NTDLL.@] * ZwRestoreKey [NTDLL.@] */ @@ -1149,7 +1149,7 @@ index 0701426..b74c464 100644 HANDLE KeyHandle, HANDLE FileHandle, ULONG RestoreFlags) -@@ -786,7 +806,8 @@ NTSTATUS WINAPI NtRestoreKey( +@@ -804,7 +824,8 @@ NTSTATUS WINAPI NtRestoreKey( * NtSaveKey [NTDLL.@] * ZwSaveKey [NTDLL.@] */ @@ -1159,7 +1159,7 @@ index 0701426..b74c464 100644 { NTSTATUS ret; -@@ -806,7 +827,8 @@ NTSTATUS WINAPI NtSaveKey(IN HANDLE KeyHandle, IN HANDLE FileHandle) +@@ -824,7 +845,8 @@ NTSTATUS WINAPI NtSaveKey(IN HANDLE KeyHandle, IN HANDLE FileHandle) * NtSetInformationKey [NTDLL.@] * ZwSetInformationKey [NTDLL.@] */ @@ -1169,7 +1169,7 @@ index 0701426..b74c464 100644 IN HANDLE KeyHandle, IN const int KeyInformationClass, IN PVOID KeyInformation, -@@ -826,7 +848,8 @@ NTSTATUS WINAPI NtSetInformationKey( +@@ -844,7 +866,8 @@ NTSTATUS WINAPI NtSetInformationKey( * win95 does not care about count for REG_SZ and finds out the len by itself (js) * NT does definitely care (aj) */ @@ -1179,7 +1179,7 @@ index 0701426..b74c464 100644 ULONG type, const void *data, ULONG count ) { NTSTATUS ret; -@@ -865,7 +888,8 @@ NTSTATUS WINAPI RtlpNtSetValueKey( HANDLE hkey, ULONG type, const void *data, +@@ -883,7 +906,8 @@ NTSTATUS WINAPI RtlpNtSetValueKey( HANDLE hkey, ULONG type, const void *data, * NtUnloadKey [NTDLL.@] * ZwUnloadKey [NTDLL.@] */ @@ -1189,7 +1189,7 @@ index 0701426..b74c464 100644 { NTSTATUS ret; -@@ -1472,7 +1496,8 @@ NTSTATUS WINAPI RtlWriteRegistryValue( ULONG RelativeTo, PCWSTR path, PCWSTR nam +@@ -1490,7 +1514,8 @@ NTSTATUS WINAPI RtlWriteRegistryValue( ULONG RelativeTo, PCWSTR path, PCWSTR nam * unless there is some app which explicitly depends on that, there is * no good reason to reproduce that. */ @@ -1326,10 +1326,10 @@ index 3a41c84..905e7cc 100644 NTSTATUS status = raise_exception( rec, context, first_chance ); if (status == STATUS_SUCCESS) NtSetContextThread( GetCurrentThread(), context ); diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c -index 5c3aa819..fdb48371 100644 +index a3abbff..839f793 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c -@@ -2617,7 +2617,8 @@ DEFINE_REGS_ENTRYPOINT( RtlUnwind, 4 ) +@@ -2598,7 +2598,8 @@ DEFINE_REGS_ENTRYPOINT( RtlUnwind, 4 ) /******************************************************************* * NtRaiseException (NTDLL.@) */ @@ -1339,7 +1339,7 @@ index 5c3aa819..fdb48371 100644 { NTSTATUS status = raise_exception( rec, context, first_chance ); if (status == STATUS_SUCCESS) -@@ -2856,4 +2857,12 @@ __ASM_GLOBAL_FUNC(call_exception_handler, +@@ -2837,4 +2838,12 @@ __ASM_GLOBAL_FUNC(call_exception_handler, __ASM_CFI(".cfi_same_value %ebp\n\t") "ret $20" ) /* (*4) */ @@ -1367,10 +1367,10 @@ index 886da86..9ec38f5 100644 NTSTATUS status = raise_exception( rec, context, first_chance ); if (status == STATUS_SUCCESS) NtSetContextThread( GetCurrentThread(), context ); diff --git a/dlls/ntdll/signal_x86_64.c b/dlls/ntdll/signal_x86_64.c -index 524de68..574b086 100644 +index 0c64541..ad00eb6 100644 --- a/dlls/ntdll/signal_x86_64.c +++ b/dlls/ntdll/signal_x86_64.c -@@ -3617,7 +3617,8 @@ EXCEPTION_DISPOSITION WINAPI __C_specific_handler( EXCEPTION_RECORD *rec, +@@ -3637,7 +3637,8 @@ EXCEPTION_DISPOSITION WINAPI __C_specific_handler( EXCEPTION_RECORD *rec, /******************************************************************* * NtRaiseException (NTDLL.@) */ @@ -1381,10 +1381,10 @@ index 524de68..574b086 100644 NTSTATUS status = raise_exception( rec, context, first_chance ); if (status == STATUS_SUCCESS) NtSetContextThread( GetCurrentThread(), context ); diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c -index 6892732..341a71a 100644 +index 36a9c86..1f8ab5a 100644 --- a/dlls/ntdll/sync.c +++ b/dlls/ntdll/sync.c -@@ -149,7 +149,8 @@ void NTDLL_free_struct_sd(struct security_descriptor *server_sd) +@@ -157,7 +157,8 @@ NTSTATUS alloc_object_attributes( const OBJECT_ATTRIBUTES *attr, struct object_a /****************************************************************************** * NtCreateSemaphore (NTDLL.@) */ @@ -1394,7 +1394,7 @@ index 6892732..341a71a 100644 IN ACCESS_MASK access, IN const OBJECT_ATTRIBUTES *attr OPTIONAL, IN LONG InitialCount, -@@ -195,7 +196,8 @@ NTSTATUS WINAPI NtCreateSemaphore( OUT PHANDLE SemaphoreHandle, +@@ -190,7 +191,8 @@ NTSTATUS WINAPI NtCreateSemaphore( OUT PHANDLE SemaphoreHandle, /****************************************************************************** * NtOpenSemaphore (NTDLL.@) */ @@ -1404,7 +1404,7 @@ index 6892732..341a71a 100644 IN ACCESS_MASK access, IN const OBJECT_ATTRIBUTES *attr ) { -@@ -220,7 +222,8 @@ NTSTATUS WINAPI NtOpenSemaphore( OUT PHANDLE SemaphoreHandle, +@@ -215,7 +217,8 @@ NTSTATUS WINAPI NtOpenSemaphore( OUT PHANDLE SemaphoreHandle, /****************************************************************************** * NtQuerySemaphore (NTDLL.@) */ @@ -1414,7 +1414,7 @@ index 6892732..341a71a 100644 void *info, ULONG len, ULONG *ret_len ) { NTSTATUS ret; -@@ -252,7 +255,8 @@ NTSTATUS WINAPI NtQuerySemaphore( HANDLE handle, SEMAPHORE_INFORMATION_CLASS cla +@@ -247,7 +250,8 @@ NTSTATUS WINAPI NtQuerySemaphore( HANDLE handle, SEMAPHORE_INFORMATION_CLASS cla /****************************************************************************** * NtReleaseSemaphore (NTDLL.@) */ @@ -1424,7 +1424,7 @@ index 6892732..341a71a 100644 { NTSTATUS ret; SERVER_START_REQ( release_semaphore ) -@@ -276,7 +280,8 @@ NTSTATUS WINAPI NtReleaseSemaphore( HANDLE handle, ULONG count, PULONG previous +@@ -271,7 +275,8 @@ NTSTATUS WINAPI NtReleaseSemaphore( HANDLE handle, ULONG count, PULONG previous * NtCreateEvent (NTDLL.@) * ZwCreateEvent (NTDLL.@) */ @@ -1433,8 +1433,8 @@ index 6892732..341a71a 100644 +NTSTATUS WINAPI SYSCALL(NtCreateEvent)( PHANDLE EventHandle, ACCESS_MASK DesiredAccess, const OBJECT_ATTRIBUTES *attr, EVENT_TYPE type, BOOLEAN InitialState) { - DWORD len = attr && attr->ObjectName ? attr->ObjectName->Length : 0; -@@ -318,7 +323,8 @@ NTSTATUS WINAPI NtCreateEvent( PHANDLE EventHandle, ACCESS_MASK DesiredAccess, + NTSTATUS ret; +@@ -299,7 +304,8 @@ NTSTATUS WINAPI NtCreateEvent( PHANDLE EventHandle, ACCESS_MASK DesiredAccess, * NtOpenEvent (NTDLL.@) * ZwOpenEvent (NTDLL.@) */ @@ -1444,7 +1444,7 @@ index 6892732..341a71a 100644 OUT PHANDLE EventHandle, IN ACCESS_MASK DesiredAccess, IN const OBJECT_ATTRIBUTES *attr ) -@@ -346,7 +352,8 @@ NTSTATUS WINAPI NtOpenEvent( +@@ -327,7 +333,8 @@ NTSTATUS WINAPI NtOpenEvent( * NtSetEvent (NTDLL.@) * ZwSetEvent (NTDLL.@) */ @@ -1454,7 +1454,7 @@ index 6892732..341a71a 100644 { NTSTATUS ret; -@@ -365,7 +372,8 @@ NTSTATUS WINAPI NtSetEvent( HANDLE handle, PULONG NumberOfThreadsReleased ) +@@ -346,7 +353,8 @@ NTSTATUS WINAPI NtSetEvent( HANDLE handle, PULONG NumberOfThreadsReleased ) /****************************************************************************** * NtResetEvent (NTDLL.@) */ @@ -1464,7 +1464,7 @@ index 6892732..341a71a 100644 { NTSTATUS ret; -@@ -388,7 +396,8 @@ NTSTATUS WINAPI NtResetEvent( HANDLE handle, PULONG NumberOfThreadsReleased ) +@@ -369,7 +377,8 @@ NTSTATUS WINAPI NtResetEvent( HANDLE handle, PULONG NumberOfThreadsReleased ) * FIXME * same as NtResetEvent ??? */ @@ -1474,7 +1474,7 @@ index 6892732..341a71a 100644 { return NtResetEvent( handle, NULL ); } -@@ -399,7 +408,8 @@ NTSTATUS WINAPI NtClearEvent ( HANDLE handle ) +@@ -380,7 +389,8 @@ NTSTATUS WINAPI NtClearEvent ( HANDLE handle ) * FIXME * PulseCount */ @@ -1484,7 +1484,7 @@ index 6892732..341a71a 100644 { NTSTATUS ret; -@@ -419,7 +429,8 @@ NTSTATUS WINAPI NtPulseEvent( HANDLE handle, PULONG PulseCount ) +@@ -400,7 +410,8 @@ NTSTATUS WINAPI NtPulseEvent( HANDLE handle, PULONG PulseCount ) /****************************************************************************** * NtQueryEvent (NTDLL.@) */ @@ -1494,7 +1494,7 @@ index 6892732..341a71a 100644 void *info, ULONG len, ULONG *ret_len ) { NTSTATUS ret; -@@ -457,7 +468,8 @@ NTSTATUS WINAPI NtQueryEvent( HANDLE handle, EVENT_INFORMATION_CLASS class, +@@ -438,7 +449,8 @@ NTSTATUS WINAPI NtQueryEvent( HANDLE handle, EVENT_INFORMATION_CLASS class, * NtCreateMutant [NTDLL.@] * ZwCreateMutant [NTDLL.@] */ @@ -1504,7 +1504,7 @@ index 6892732..341a71a 100644 IN ACCESS_MASK access, IN const OBJECT_ATTRIBUTES* attr OPTIONAL, IN BOOLEAN InitialOwner) -@@ -500,7 +512,8 @@ NTSTATUS WINAPI NtCreateMutant(OUT HANDLE* MutantHandle, +@@ -467,7 +479,8 @@ NTSTATUS WINAPI NtCreateMutant(OUT HANDLE* MutantHandle, * NtOpenMutant [NTDLL.@] * ZwOpenMutant [NTDLL.@] */ @@ -1514,7 +1514,7 @@ index 6892732..341a71a 100644 IN ACCESS_MASK access, IN const OBJECT_ATTRIBUTES* attr ) { -@@ -526,7 +539,8 @@ NTSTATUS WINAPI NtOpenMutant(OUT HANDLE* MutantHandle, +@@ -493,7 +506,8 @@ NTSTATUS WINAPI NtOpenMutant(OUT HANDLE* MutantHandle, * NtReleaseMutant [NTDLL.@] * ZwReleaseMutant [NTDLL.@] */ @@ -1524,7 +1524,7 @@ index 6892732..341a71a 100644 { NTSTATUS status; -@@ -544,7 +558,8 @@ NTSTATUS WINAPI NtReleaseMutant( IN HANDLE handle, OUT PLONG prev_count OPTIONAL +@@ -511,7 +525,8 @@ NTSTATUS WINAPI NtReleaseMutant( IN HANDLE handle, OUT PLONG prev_count OPTIONAL * NtQueryMutant [NTDLL.@] * ZwQueryMutant [NTDLL.@] */ @@ -1534,7 +1534,7 @@ index 6892732..341a71a 100644 IN MUTANT_INFORMATION_CLASS MutantInformationClass, OUT PVOID MutantInformation, IN ULONG MutantInformationLength, -@@ -563,7 +578,8 @@ NTSTATUS WINAPI NtQueryMutant(IN HANDLE handle, +@@ -530,7 +545,8 @@ NTSTATUS WINAPI NtQueryMutant(IN HANDLE handle, * NtCreateJobObject [NTDLL.@] * ZwCreateJobObject [NTDLL.@] */ @@ -1542,9 +1542,9 @@ index 6892732..341a71a 100644 +DEFINE_SYSCALL_ENTRYPOINT( NtCreateJobObject, 3 ); +NTSTATUS WINAPI SYSCALL(NtCreateJobObject)( PHANDLE handle, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr ) { - DWORD len = attr && attr->ObjectName ? attr->ObjectName->Length : 0; NTSTATUS ret; -@@ -601,7 +617,8 @@ NTSTATUS WINAPI NtCreateJobObject( PHANDLE handle, ACCESS_MASK access, const OBJ + data_size_t len; +@@ -555,7 +571,8 @@ NTSTATUS WINAPI NtCreateJobObject( PHANDLE handle, ACCESS_MASK access, const OBJ * NtOpenJobObject [NTDLL.@] * ZwOpenJobObject [NTDLL.@] */ @@ -1554,7 +1554,7 @@ index 6892732..341a71a 100644 { FIXME( "stub: %p %x %s\n", handle, access, attr ? debugstr_us(attr->ObjectName) : "" ); return STATUS_NOT_IMPLEMENTED; -@@ -611,7 +628,8 @@ NTSTATUS WINAPI NtOpenJobObject( PHANDLE handle, ACCESS_MASK access, const OBJEC +@@ -565,7 +582,8 @@ NTSTATUS WINAPI NtOpenJobObject( PHANDLE handle, ACCESS_MASK access, const OBJEC * NtTerminateJobObject [NTDLL.@] * ZwTerminateJobObject [NTDLL.@] */ @@ -1564,7 +1564,7 @@ index 6892732..341a71a 100644 { NTSTATUS ret; -@@ -632,7 +650,8 @@ NTSTATUS WINAPI NtTerminateJobObject( HANDLE handle, NTSTATUS status ) +@@ -586,7 +604,8 @@ NTSTATUS WINAPI NtTerminateJobObject( HANDLE handle, NTSTATUS status ) * NtQueryInformationJobObject [NTDLL.@] * ZwQueryInformationJobObject [NTDLL.@] */ @@ -1574,7 +1574,7 @@ index 6892732..341a71a 100644 ULONG len, PULONG ret_len ) { FIXME( "stub: %p %u %p %u %p\n", handle, class, info, len, ret_len ); -@@ -675,7 +694,8 @@ NTSTATUS WINAPI NtQueryInformationJobObject( HANDLE handle, JOBOBJECTINFOCLASS c +@@ -629,7 +648,8 @@ NTSTATUS WINAPI NtQueryInformationJobObject( HANDLE handle, JOBOBJECTINFOCLASS c * NtSetInformationJobObject [NTDLL.@] * ZwSetInformationJobObject [NTDLL.@] */ @@ -1584,7 +1584,7 @@ index 6892732..341a71a 100644 { NTSTATUS status = STATUS_NOT_IMPLEMENTED; JOBOBJECT_BASIC_LIMIT_INFORMATION *basic_limit; -@@ -740,7 +760,8 @@ NTSTATUS WINAPI NtSetInformationJobObject( HANDLE handle, JOBOBJECTINFOCLASS cla +@@ -694,7 +714,8 @@ NTSTATUS WINAPI NtSetInformationJobObject( HANDLE handle, JOBOBJECTINFOCLASS cla * NtIsProcessInJob [NTDLL.@] * ZwIsProcessInJob [NTDLL.@] */ @@ -1594,7 +1594,7 @@ index 6892732..341a71a 100644 { NTSTATUS status; -@@ -761,7 +782,8 @@ NTSTATUS WINAPI NtIsProcessInJob( HANDLE process, HANDLE job ) +@@ -715,7 +736,8 @@ NTSTATUS WINAPI NtIsProcessInJob( HANDLE process, HANDLE job ) * NtAssignProcessToJobObject [NTDLL.@] * ZwAssignProcessToJobObject [NTDLL.@] */ @@ -1604,7 +1604,7 @@ index 6892732..341a71a 100644 { NTSTATUS status; -@@ -786,7 +808,8 @@ NTSTATUS WINAPI NtAssignProcessToJobObject( HANDLE job, HANDLE process ) +@@ -740,7 +762,8 @@ NTSTATUS WINAPI NtAssignProcessToJobObject( HANDLE job, HANDLE process ) * NtCreateTimer [NTDLL.@] * ZwCreateTimer [NTDLL.@] */ @@ -1614,7 +1614,7 @@ index 6892732..341a71a 100644 IN ACCESS_MASK access, IN const OBJECT_ATTRIBUTES *attr OPTIONAL, IN TIMER_TYPE timer_type) -@@ -818,7 +841,8 @@ NTSTATUS WINAPI NtCreateTimer(OUT HANDLE *handle, +@@ -772,7 +795,8 @@ NTSTATUS WINAPI NtCreateTimer(OUT HANDLE *handle, * NtOpenTimer [NTDLL.@] * ZwOpenTimer [NTDLL.@] */ @@ -1624,7 +1624,7 @@ index 6892732..341a71a 100644 IN ACCESS_MASK access, IN const OBJECT_ATTRIBUTES* attr ) { -@@ -844,7 +868,8 @@ NTSTATUS WINAPI NtOpenTimer(OUT PHANDLE handle, +@@ -798,7 +822,8 @@ NTSTATUS WINAPI NtOpenTimer(OUT PHANDLE handle, * NtSetTimer [NTDLL.@] * ZwSetTimer [NTDLL.@] */ @@ -1634,7 +1634,7 @@ index 6892732..341a71a 100644 IN const LARGE_INTEGER* when, IN PTIMER_APC_ROUTINE callback, IN PVOID callback_arg, -@@ -878,7 +903,8 @@ NTSTATUS WINAPI NtSetTimer(IN HANDLE handle, +@@ -832,7 +857,8 @@ NTSTATUS WINAPI NtSetTimer(IN HANDLE handle, * NtCancelTimer [NTDLL.@] * ZwCancelTimer [NTDLL.@] */ @@ -1644,7 +1644,7 @@ index 6892732..341a71a 100644 { NTSTATUS status; -@@ -912,7 +938,8 @@ NTSTATUS WINAPI NtCancelTimer(IN HANDLE handle, OUT BOOLEAN* state) +@@ -866,7 +892,8 @@ NTSTATUS WINAPI NtCancelTimer(IN HANDLE handle, OUT BOOLEAN* state) * STATUS_ACCESS_DENIED, if TimerHandle does not have TIMER_QUERY_STATE access * to the timer. */ @@ -1654,7 +1654,7 @@ index 6892732..341a71a 100644 HANDLE TimerHandle, TIMER_INFORMATION_CLASS TimerInformationClass, PVOID TimerInformation, -@@ -963,7 +990,8 @@ NTSTATUS WINAPI NtQueryTimer( +@@ -917,7 +944,8 @@ NTSTATUS WINAPI NtQueryTimer( /****************************************************************************** * NtQueryTimerResolution [NTDLL.@] */ @@ -1664,7 +1664,7 @@ index 6892732..341a71a 100644 OUT ULONG* max_resolution, OUT ULONG* current_resolution) { -@@ -976,7 +1004,8 @@ NTSTATUS WINAPI NtQueryTimerResolution(OUT ULONG* min_resolution, +@@ -930,7 +958,8 @@ NTSTATUS WINAPI NtQueryTimerResolution(OUT ULONG* min_resolution, /****************************************************************************** * NtSetTimerResolution [NTDLL.@] */ @@ -1674,7 +1674,7 @@ index 6892732..341a71a 100644 IN BOOLEAN set_resolution, OUT ULONG* current_resolution ) { -@@ -1009,7 +1038,8 @@ static NTSTATUS wait_objects( DWORD count, const HANDLE *handles, +@@ -963,7 +992,8 @@ static NTSTATUS wait_objects( DWORD count, const HANDLE *handles, /****************************************************************** * NtWaitForMultipleObjects (NTDLL.@) */ @@ -1684,7 +1684,7 @@ index 6892732..341a71a 100644 BOOLEAN wait_any, BOOLEAN alertable, const LARGE_INTEGER *timeout ) { -@@ -1020,7 +1050,8 @@ NTSTATUS WINAPI NtWaitForMultipleObjects( DWORD count, const HANDLE *handles, +@@ -974,7 +1004,8 @@ NTSTATUS WINAPI NtWaitForMultipleObjects( DWORD count, const HANDLE *handles, /****************************************************************** * NtWaitForSingleObject (NTDLL.@) */ @@ -1694,7 +1694,7 @@ index 6892732..341a71a 100644 { return wait_objects( 1, &handle, FALSE, alertable, timeout ); } -@@ -1029,7 +1060,8 @@ NTSTATUS WINAPI NtWaitForSingleObject(HANDLE handle, BOOLEAN alertable, const LA +@@ -983,7 +1014,8 @@ NTSTATUS WINAPI NtWaitForSingleObject(HANDLE handle, BOOLEAN alertable, const LA /****************************************************************** * NtSignalAndWaitForSingleObject (NTDLL.@) */ @@ -1704,7 +1704,7 @@ index 6892732..341a71a 100644 BOOLEAN alertable, const LARGE_INTEGER *timeout ) { select_op_t select_op; -@@ -1048,7 +1080,8 @@ NTSTATUS WINAPI NtSignalAndWaitForSingleObject( HANDLE hSignalObject, HANDLE hWa +@@ -1002,7 +1034,8 @@ NTSTATUS WINAPI NtSignalAndWaitForSingleObject( HANDLE hSignalObject, HANDLE hWa /****************************************************************** * NtYieldExecution (NTDLL.@) */ @@ -1714,7 +1714,7 @@ index 6892732..341a71a 100644 { #ifdef HAVE_SCHED_YIELD sched_yield(); -@@ -1062,7 +1095,8 @@ NTSTATUS WINAPI NtYieldExecution(void) +@@ -1016,7 +1049,8 @@ NTSTATUS WINAPI NtYieldExecution(void) /****************************************************************** * NtDelayExecution (NTDLL.@) */ @@ -1724,7 +1724,7 @@ index 6892732..341a71a 100644 { /* if alertable, we need to query the server */ if (alertable) -@@ -1105,7 +1139,8 @@ NTSTATUS WINAPI NtDelayExecution( BOOLEAN alertable, const LARGE_INTEGER *timeou +@@ -1059,7 +1093,8 @@ NTSTATUS WINAPI NtDelayExecution( BOOLEAN alertable, const LARGE_INTEGER *timeou /****************************************************************************** * NtCreateKeyedEvent (NTDLL.@) */ @@ -1733,8 +1733,8 @@ index 6892732..341a71a 100644 +NTSTATUS WINAPI SYSCALL(NtCreateKeyedEvent)( HANDLE *handle, ACCESS_MASK access, const OBJECT_ATTRIBUTES *attr, ULONG flags ) { - DWORD len = attr && attr->ObjectName ? attr->ObjectName->Length : 0; -@@ -1143,7 +1178,8 @@ NTSTATUS WINAPI NtCreateKeyedEvent( HANDLE *handle, ACCESS_MASK access, + NTSTATUS ret; +@@ -1084,7 +1119,8 @@ NTSTATUS WINAPI NtCreateKeyedEvent( HANDLE *handle, ACCESS_MASK access, /****************************************************************************** * NtOpenKeyedEvent (NTDLL.@) */ @@ -1744,7 +1744,7 @@ index 6892732..341a71a 100644 { DWORD len = attr && attr->ObjectName ? attr->ObjectName->Length : 0; NTSTATUS ret; -@@ -1166,7 +1202,8 @@ NTSTATUS WINAPI NtOpenKeyedEvent( HANDLE *handle, ACCESS_MASK access, const OBJE +@@ -1107,7 +1143,8 @@ NTSTATUS WINAPI NtOpenKeyedEvent( HANDLE *handle, ACCESS_MASK access, const OBJE /****************************************************************************** * NtWaitForKeyedEvent (NTDLL.@) */ @@ -1754,7 +1754,7 @@ index 6892732..341a71a 100644 BOOLEAN alertable, const LARGE_INTEGER *timeout ) { select_op_t select_op; -@@ -1183,7 +1220,8 @@ NTSTATUS WINAPI NtWaitForKeyedEvent( HANDLE handle, const void *key, +@@ -1124,7 +1161,8 @@ NTSTATUS WINAPI NtWaitForKeyedEvent( HANDLE handle, const void *key, /****************************************************************************** * NtReleaseKeyedEvent (NTDLL.@) */ @@ -1764,7 +1764,7 @@ index 6892732..341a71a 100644 BOOLEAN alertable, const LARGE_INTEGER *timeout ) { select_op_t select_op; -@@ -1210,7 +1248,8 @@ NTSTATUS WINAPI NtReleaseKeyedEvent( HANDLE handle, const void *key, +@@ -1151,7 +1189,8 @@ NTSTATUS WINAPI NtReleaseKeyedEvent( HANDLE handle, const void *key, * NumberOfConcurrentThreads [I] desired number of concurrent active worker threads * */ @@ -1774,7 +1774,7 @@ index 6892732..341a71a 100644 POBJECT_ATTRIBUTES ObjectAttributes, ULONG NumberOfConcurrentThreads ) { NTSTATUS status; -@@ -1250,7 +1289,8 @@ NTSTATUS WINAPI NtCreateIoCompletion( PHANDLE CompletionPort, ACCESS_MASK Desire +@@ -1191,7 +1230,8 @@ NTSTATUS WINAPI NtCreateIoCompletion( PHANDLE CompletionPort, ACCESS_MASK Desire * Status [I] operation status * NumberOfBytesTransferred [I] number of bytes transferred */ @@ -1784,7 +1784,7 @@ index 6892732..341a71a 100644 ULONG_PTR CompletionValue, NTSTATUS Status, SIZE_T NumberOfBytesTransferred ) { -@@ -1286,7 +1326,8 @@ NTSTATUS WINAPI NtSetIoCompletion( HANDLE CompletionPort, ULONG_PTR CompletionKe +@@ -1227,7 +1267,8 @@ NTSTATUS WINAPI NtSetIoCompletion( HANDLE CompletionPort, ULONG_PTR CompletionKe * WaitTime [I] optional wait time in NTDLL format * */ @@ -1794,7 +1794,7 @@ index 6892732..341a71a 100644 PULONG_PTR CompletionValue, PIO_STATUS_BLOCK iosb, PLARGE_INTEGER WaitTime ) { -@@ -1329,7 +1370,8 @@ NTSTATUS WINAPI NtRemoveIoCompletion( HANDLE CompletionPort, PULONG_PTR Completi +@@ -1270,7 +1311,8 @@ NTSTATUS WINAPI NtRemoveIoCompletion( HANDLE CompletionPort, PULONG_PTR Completi * ObjectAttributes [I] completion object name * */ @@ -1804,7 +1804,7 @@ index 6892732..341a71a 100644 POBJECT_ATTRIBUTES ObjectAttributes ) { NTSTATUS status; -@@ -1366,7 +1408,8 @@ NTSTATUS WINAPI NtOpenIoCompletion( PHANDLE CompletionPort, ACCESS_MASK DesiredA +@@ -1307,7 +1349,8 @@ NTSTATUS WINAPI NtOpenIoCompletion( PHANDLE CompletionPort, ACCESS_MASK DesiredA * RequiredLength [O] required buffer length * */ @@ -1815,7 +1815,7 @@ index 6892732..341a71a 100644 { NTSTATUS status; diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index aaf7a71..41f93be 100644 +index 1455eb1..8215d5a 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -599,7 +599,8 @@ ULONG WINAPI RtlGetNtGlobalFlags(void) @@ -1908,7 +1908,7 @@ index aaf7a71..41f93be 100644 { NTSTATUS ret; DWORD dummy, i; -@@ -910,7 +919,8 @@ NTSTATUS WINAPI NtGetContextThread( HANDLE handle, CONTEXT *context ) +@@ -912,7 +921,8 @@ NTSTATUS WINAPI NtGetContextThread( HANDLE handle, CONTEXT *context ) * NtQueryInformationThread (NTDLL.@) * ZwQueryInformationThread (NTDLL.@) */ @@ -1918,7 +1918,7 @@ index aaf7a71..41f93be 100644 void *data, ULONG length, ULONG *ret_len ) { NTSTATUS status; -@@ -1154,7 +1164,8 @@ NTSTATUS WINAPI NtQueryInformationThread( HANDLE handle, THREADINFOCLASS class, +@@ -1156,7 +1166,8 @@ NTSTATUS WINAPI NtQueryInformationThread( HANDLE handle, THREADINFOCLASS class, * NtSetInformationThread (NTDLL.@) * ZwSetInformationThread (NTDLL.@) */ @@ -1928,7 +1928,7 @@ index aaf7a71..41f93be 100644 LPCVOID data, ULONG length ) { NTSTATUS status; -@@ -1313,7 +1324,8 @@ NTSTATUS WINAPI NtSetInformationThread( HANDLE handle, THREADINFOCLASS class, +@@ -1315,7 +1326,8 @@ NTSTATUS WINAPI NtSetInformationThread( HANDLE handle, THREADINFOCLASS class, * Return the processor, on which the thread is running * */ @@ -1983,7 +1983,7 @@ index 96ffcfa..e93e820 100644 struct timeval tv; time_t tm_t; diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c -index 4d4bc3b..f30d94a 100644 +index f4ca487..4819a17 100644 --- a/dlls/ntdll/virtual.c +++ b/dlls/ntdll/virtual.c @@ -1857,7 +1857,8 @@ void virtual_set_large_address_space(void) @@ -2056,7 +2056,7 @@ index 4d4bc3b..f30d94a 100644 const LARGE_INTEGER *size, ULONG protect, ULONG sec_flags, HANDLE file ) { -@@ -2510,7 +2517,8 @@ NTSTATUS WINAPI NtCreateSection( HANDLE *handle, ACCESS_MASK access, const OBJEC +@@ -2495,7 +2502,8 @@ NTSTATUS WINAPI NtCreateSection( HANDLE *handle, ACCESS_MASK access, const OBJEC * NtOpenSection (NTDLL.@) * ZwOpenSection (NTDLL.@) */ @@ -2066,7 +2066,7 @@ index 4d4bc3b..f30d94a 100644 { NTSTATUS ret; DWORD len = attr->ObjectName->Length; -@@ -2534,7 +2542,8 @@ NTSTATUS WINAPI NtOpenSection( HANDLE *handle, ACCESS_MASK access, const OBJECT_ +@@ -2519,7 +2527,8 @@ NTSTATUS WINAPI NtOpenSection( HANDLE *handle, ACCESS_MASK access, const OBJECT_ * NtMapViewOfSection (NTDLL.@) * ZwMapViewOfSection (NTDLL.@) */ @@ -2076,7 +2076,7 @@ index 4d4bc3b..f30d94a 100644 SIZE_T commit_size, const LARGE_INTEGER *offset_ptr, SIZE_T *size_ptr, SECTION_INHERIT inherit, ULONG alloc_type, ULONG protect ) { -@@ -2732,7 +2741,8 @@ done: +@@ -2717,7 +2726,8 @@ done: * NtUnmapViewOfSection (NTDLL.@) * ZwUnmapViewOfSection (NTDLL.@) */ @@ -2086,7 +2086,7 @@ index 4d4bc3b..f30d94a 100644 { struct file_view *view; NTSTATUS status = STATUS_NOT_MAPPED_VIEW; -@@ -2768,7 +2778,8 @@ NTSTATUS WINAPI NtUnmapViewOfSection( HANDLE process, PVOID addr ) +@@ -2753,7 +2763,8 @@ NTSTATUS WINAPI NtUnmapViewOfSection( HANDLE process, PVOID addr ) * NtFlushVirtualMemory (NTDLL.@) * ZwFlushVirtualMemory (NTDLL.@) */ @@ -2096,7 +2096,7 @@ index 4d4bc3b..f30d94a 100644 SIZE_T *size_ptr, ULONG unknown ) { struct file_view *view; -@@ -2816,7 +2827,8 @@ NTSTATUS WINAPI NtFlushVirtualMemory( HANDLE process, LPCVOID *addr_ptr, +@@ -2801,7 +2812,8 @@ NTSTATUS WINAPI NtFlushVirtualMemory( HANDLE process, LPCVOID *addr_ptr, * NtGetWriteWatch (NTDLL.@) * ZwGetWriteWatch (NTDLL.@) */ @@ -2106,7 +2106,7 @@ index 4d4bc3b..f30d94a 100644 ULONG_PTR *count, ULONG *granularity ) { struct file_view *view; -@@ -2864,7 +2876,8 @@ NTSTATUS WINAPI NtGetWriteWatch( HANDLE process, ULONG flags, PVOID base, SIZE_T +@@ -2849,7 +2861,8 @@ NTSTATUS WINAPI NtGetWriteWatch( HANDLE process, ULONG flags, PVOID base, SIZE_T * NtResetWriteWatch (NTDLL.@) * ZwResetWriteWatch (NTDLL.@) */ @@ -2116,7 +2116,7 @@ index 4d4bc3b..f30d94a 100644 { struct file_view *view; NTSTATUS status = STATUS_SUCCESS; -@@ -2893,7 +2906,8 @@ NTSTATUS WINAPI NtResetWriteWatch( HANDLE process, PVOID base, SIZE_T size ) +@@ -2878,7 +2891,8 @@ NTSTATUS WINAPI NtResetWriteWatch( HANDLE process, PVOID base, SIZE_T size ) * NtReadVirtualMemory (NTDLL.@) * ZwReadVirtualMemory (NTDLL.@) */ @@ -2126,7 +2126,7 @@ index 4d4bc3b..f30d94a 100644 SIZE_T size, SIZE_T *bytes_read ) { NTSTATUS status; -@@ -2923,7 +2937,8 @@ NTSTATUS WINAPI NtReadVirtualMemory( HANDLE process, const void *addr, void *buf +@@ -2908,7 +2922,8 @@ NTSTATUS WINAPI NtReadVirtualMemory( HANDLE process, const void *addr, void *buf * NtWriteVirtualMemory (NTDLL.@) * ZwWriteVirtualMemory (NTDLL.@) */ @@ -2136,7 +2136,7 @@ index 4d4bc3b..f30d94a 100644 SIZE_T size, SIZE_T *bytes_written ) { NTSTATUS status; -@@ -2953,7 +2968,8 @@ NTSTATUS WINAPI NtWriteVirtualMemory( HANDLE process, void *addr, const void *bu +@@ -2938,7 +2953,8 @@ NTSTATUS WINAPI NtWriteVirtualMemory( HANDLE process, void *addr, const void *bu * NtAreMappedFilesTheSame (NTDLL.@) * ZwAreMappedFilesTheSame (NTDLL.@) */ @@ -2147,5 +2147,5 @@ index 4d4bc3b..f30d94a 100644 struct file_view *view1, *view2; struct stat st1, st2; -- -2.6.2 +2.6.4 diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 1423cb10..e9e5fc18 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "8d0d1e563ca7697902df9c285ff13ce648697537" + echo "3198fb0c1c3779882944659d52a676319ffcc68d" } # Show version information diff --git a/patches/server-Shared_Memory/0002-server-Implement-support-for-global-and-local-shared.patch b/patches/server-Shared_Memory/0002-server-Implement-support-for-global-and-local-shared.patch index f9a8b648..4262122e 100644 --- a/patches/server-Shared_Memory/0002-server-Implement-support-for-global-and-local-shared.patch +++ b/patches/server-Shared_Memory/0002-server-Implement-support-for-global-and-local-shared.patch @@ -1,4 +1,4 @@ -From 0514f064febfdfdd9321c03793e996b6989fb3d0 Mon Sep 17 00:00:00 2001 +From cc8a09773c259881d21c67f3b99b07208bee2cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 19 Mar 2015 01:22:34 +0100 Subject: server: Implement support for global and local shared memory blocks @@ -20,19 +20,19 @@ Subject: server: Implement support for global and local shared memory blocks 12 files changed, 215 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h -index 7eded42..79cc2c1 100644 +index 539944e..493246c 100644 --- a/dlls/ntdll/ntdll_misc.h +++ b/dlls/ntdll/ntdll_misc.h -@@ -97,6 +97,7 @@ extern int server_remove_fd_from_cache( HANDLE handle ) DECLSPEC_HIDDEN; - extern int server_get_unix_fd( HANDLE handle, unsigned int access, int *unix_fd, - int *needs_close, enum server_fd_type *type, unsigned int *options ) DECLSPEC_HIDDEN; +@@ -99,6 +99,7 @@ extern int server_get_unix_fd( HANDLE handle, unsigned int access, int *unix_fd, extern int server_pipe( int fd[2] ) DECLSPEC_HIDDEN; + extern NTSTATUS alloc_object_attributes( const OBJECT_ATTRIBUTES *attr, struct object_attributes **ret, + data_size_t *ret_len ) DECLSPEC_HIDDEN; +extern void *server_get_shared_memory( HANDLE thread ) DECLSPEC_HIDDEN; - /* security descriptors */ - NTSTATUS NTDLL_create_struct_sd(PSECURITY_DESCRIPTOR nt_sd, struct security_descriptor **server_sd, + /* module handling */ + extern LIST_ENTRY tls_links DECLSPEC_HIDDEN; diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c -index 95111ad..955c392 100644 +index 356d631..a91e478 100644 --- a/dlls/ntdll/server.c +++ b/dlls/ntdll/server.c @@ -972,6 +972,66 @@ done: @@ -114,7 +114,7 @@ index 95111ad..955c392 100644 ntdll_get_thread_data()->wow64_redir = is_wow64; diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index 7633232..c56ee1d 100644 +index 9f8e909..c91b27a 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -376,6 +376,7 @@ void terminate_thread( int status ) @@ -158,7 +158,7 @@ index d573d1f..695389a 100644 /* macros for server requests */ diff --git a/include/winternl.h b/include/winternl.h -index 5420391..624da00 100644 +index 3494c00..b733f78 100644 --- a/include/winternl.h +++ b/include/winternl.h @@ -366,7 +366,7 @@ typedef struct _TEB @@ -171,10 +171,10 @@ index 5420391..624da00 100644 ULONG ImpersonationLocale; /* f98/1788 */ ULONG IsImpersonating; /* f9c/178c */ diff --git a/server/fd.c b/server/fd.c -index fe778f1..f6f9b42 100644 +index e3fe292..00731d1 100644 --- a/server/fd.c +++ b/server/fd.c -@@ -2472,6 +2472,33 @@ DECL_HANDLER(write) +@@ -2481,6 +2481,33 @@ DECL_HANDLER(write) } } @@ -341,7 +341,7 @@ index 16e7c1c..c180ae5 100644 static int create_temp_file( file_pos_t size ) { diff --git a/server/protocol.def b/server/protocol.def -index c313006..b8c5abf 100644 +index ea5bd61..8ce9973 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -69,6 +69,15 @@ struct request_max_size @@ -360,7 +360,7 @@ index c313006..b8c5abf 100644 /* debug event data */ typedef union -@@ -1203,6 +1212,12 @@ enum server_fd_type +@@ -1204,6 +1213,12 @@ enum server_fd_type }; @@ -374,7 +374,7 @@ index c313006..b8c5abf 100644 @REQ(flush) int blocking; /* whether it's a blocking flush */ diff --git a/server/thread.c b/server/thread.c -index ba84bee..4bb5149 100644 +index 251be1c..198c371 100644 --- a/server/thread.c +++ b/server/thread.c @@ -196,6 +196,8 @@ static inline void init_thread_structure( struct thread *thread ) @@ -419,5 +419,5 @@ index ac9af24..59ef250 100644 struct thread_snapshot -- -2.6.1 +2.6.4