diff --git a/patches/Compiler_Warnings/0031-include-Check-element-type-in-CONTAINING_RECORD-and-.patch b/patches/Compiler_Warnings/0031-include-Check-element-type-in-CONTAINING_RECORD-and-.patch index b59e7817..d2c0fce0 100644 --- a/patches/Compiler_Warnings/0031-include-Check-element-type-in-CONTAINING_RECORD-and-.patch +++ b/patches/Compiler_Warnings/0031-include-Check-element-type-in-CONTAINING_RECORD-and-.patch @@ -1,8 +1,8 @@ -From 42dbdf9479e2e09734fa183b854d5ddfe987f203 Mon Sep 17 00:00:00 2001 +From 494fc3abe1eddabcf7cede677ee907284e89eea8 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 22 Mar 2016 23:08:30 +0100 -Subject: [PATCH] include: Check element type in CONTAINING_RECORD and - similar macros. +Subject: [PATCH] include: Check element type in CONTAINING_RECORD and similar + macros. --- include/wine/list.h | 10 ++++++++-- @@ -11,7 +11,7 @@ Subject: [PATCH] include: Check element type in CONTAINING_RECORD and 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/include/wine/list.h b/include/wine/list.h -index b4d681f..287ad39 100644 +index b4d681fe..287ad394 100644 --- a/include/wine/list.h +++ b/include/wine/list.h @@ -228,7 +228,13 @@ static inline void list_move_head( struct list *dst, struct list *src ) @@ -31,7 +31,7 @@ index b4d681f..287ad39 100644 #endif /* __WINE_SERVER_LIST_H */ diff --git a/include/wine/rbtree.h b/include/wine/rbtree.h -index dc50b5e..8130deb 100644 +index dc50b5e7..8130deb5 100644 --- a/include/wine/rbtree.h +++ b/include/wine/rbtree.h @@ -23,8 +23,14 @@ @@ -52,12 +52,12 @@ index dc50b5e..8130deb 100644 struct wine_rb_entry { diff --git a/include/winnt.h b/include/winnt.h -index 7f822c4..ccfe73b 100644 +index 2b489382..a156efc4 100644 --- a/include/winnt.h +++ b/include/winnt.h -@@ -756,8 +756,14 @@ typedef struct _MEMORY_BASIC_INFORMATION - - #define FIELD_OFFSET(type, field) ((LONG)offsetof(type, field)) +@@ -760,8 +760,14 @@ typedef struct _MEMORY_BASIC_INFORMATION + #define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field)) + #define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field)) -#define CONTAINING_RECORD(address, type, field) \ - ((type *)((PCHAR)(address) - offsetof(type, field))) @@ -73,5 +73,5 @@ index 7f822c4..ccfe73b 100644 #ifdef __WINESRC__ # define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) -- -1.9.1 +2.20.1 diff --git a/patches/ntdll-DllRedirects/0005-ntdll-Implement-loader-redirection-scheme.patch b/patches/ntdll-DllRedirects/0005-ntdll-Implement-loader-redirection-scheme.patch index 1f519a51..7fca4809 100644 --- a/patches/ntdll-DllRedirects/0005-ntdll-Implement-loader-redirection-scheme.patch +++ b/patches/ntdll-DllRedirects/0005-ntdll-Implement-loader-redirection-scheme.patch @@ -1,4 +1,4 @@ -From 8fe83e82d903a0b80a442d83e9a03b527fd3e53d Mon Sep 17 00:00:00 2001 +From a135acee2139211fa5f8ef8fb841f24b2d575ad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 13 Dec 2014 05:34:48 +0100 Subject: [PATCH] ntdll: Implement loader redirection scheme. @@ -8,7 +8,7 @@ Subject: [PATCH] ntdll: Implement loader redirection scheme. 1 file changed, 51 insertions(+), 23 deletions(-) diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index cd31a444..15e4af8c 100644 +index 094c454d..b2ca761e 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -110,6 +110,7 @@ struct builtin_load_info @@ -92,7 +92,7 @@ index cd31a444..15e4af8c 100644 RtlFreeHeap( GetProcessHeap(), 0, fullname ); if (!wm) { -@@ -1995,8 +1997,8 @@ static BOOL is_valid_binary( HMODULE module, const pe_image_info_t *info ) +@@ -2007,8 +2009,8 @@ static BOOL is_valid_binary( HMODULE module, const pe_image_info_t *info ) /****************************************************************************** * load_native_dll (internal) */ @@ -103,7 +103,7 @@ index cd31a444..15e4af8c 100644 { void *module; HANDLE mapping; -@@ -2039,7 +2041,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, +@@ -2051,7 +2053,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, /* create the MODREF */ @@ -112,7 +112,7 @@ index cd31a444..15e4af8c 100644 { if (module) NtUnmapViewOfSection( NtCurrentProcess(), module ); return STATUS_NO_MEMORY; -@@ -2107,8 +2109,8 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, +@@ -2119,8 +2121,8 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, /*********************************************************************** * load_builtin_dll */ @@ -123,7 +123,7 @@ index cd31a444..15e4af8c 100644 { char error[256], dllname[MAX_PATH]; const WCHAR *name, *p; -@@ -2128,6 +2130,7 @@ static NTSTATUS load_builtin_dll( LPCWSTR load_path, LPCWSTR path, HANDLE file, +@@ -2140,6 +2142,7 @@ static NTSTATUS load_builtin_dll( LPCWSTR load_path, LPCWSTR path, HANDLE file, */ info.load_path = load_path; info.filename = NULL; @@ -131,7 +131,7 @@ index cd31a444..15e4af8c 100644 info.status = STATUS_SUCCESS; info.wm = NULL; -@@ -2624,7 +2627,8 @@ overflow: +@@ -2484,7 +2487,8 @@ overflow: * Load a PE style module according to the load order. * The loader_section must be locked while calling this function. */ @@ -139,9 +139,9 @@ index cd31a444..15e4af8c 100644 +static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, LPCWSTR fakemodule, + DWORD flags, WINE_MODREF** pwm ) { - BOOL data = flags & (LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE); enum loadorder loadorder; -@@ -2663,6 +2667,30 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ + WCHAR buffer[64]; +@@ -2522,6 +2526,30 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ } main_exe = get_modref( NtCurrentTeb()->Peb->ImageBaseAddress ); @@ -172,7 +172,7 @@ index cd31a444..15e4af8c 100644 loadorder = get_load_order( main_exe ? main_exe->ldr.BaseDllName.Buffer : NULL, filename ); if (handle && is_fake_dll( handle )) -@@ -2685,22 +2713,22 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ +@@ -2544,22 +2572,22 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ if (!handle) nts = STATUS_DLL_NOT_FOUND; else { @@ -200,7 +200,7 @@ index cd31a444..15e4af8c 100644 if (nts == STATUS_SUCCESS && loadorder == LO_DEFAULT && (MODULE_InitDLL( *pwm, DLL_WINE_PREATTACH, NULL ) != STATUS_SUCCESS)) { -@@ -2710,7 +2738,7 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ +@@ -2569,7 +2597,7 @@ static NTSTATUS load_dll( LPCWSTR load_path, LPCWSTR libname, DWORD flags, WINE_ nts = STATUS_DLL_NOT_FOUND; } if (nts == STATUS_DLL_NOT_FOUND && loadorder != LO_BUILTIN) @@ -209,7 +209,7 @@ index cd31a444..15e4af8c 100644 break; } -@@ -2743,7 +2771,7 @@ NTSTATUS WINAPI DECLSPEC_HOTPATCH LdrLoadDll(LPCWSTR path_name, DWORD flags, +@@ -2602,7 +2630,7 @@ NTSTATUS WINAPI DECLSPEC_HOTPATCH LdrLoadDll(LPCWSTR path_name, DWORD flags, RtlEnterCriticalSection( &loader_section ); if (!path_name) path_name = NtCurrentTeb()->Peb->ProcessParameters->DllPath.Buffer; @@ -218,7 +218,7 @@ index cd31a444..15e4af8c 100644 if (nts == STATUS_SUCCESS && !(wm->ldr.Flags & LDR_DONT_RESOLVE_REFS)) { -@@ -3719,13 +3747,13 @@ void __wine_process_init(void) +@@ -3578,13 +3606,13 @@ void __wine_process_init(void) /* setup the load callback and create ntdll modref */ wine_dll_set_callback( load_builtin_callback ); @@ -235,5 +235,5 @@ index cd31a444..15e4af8c 100644 else WARN( "could not load wow64cpu.dll, status %#x\n", status ); -- -2.19.2 +2.20.1 diff --git a/patches/ntdll-DllRedirects/definition b/patches/ntdll-DllRedirects/definition index 098a22bc..1fd1d8a6 100644 --- a/patches/ntdll-DllRedirects/definition +++ b/patches/ntdll-DllRedirects/definition @@ -1,4 +1,4 @@ Fixes: Support for loader dll redirections -Depends: ntdll-Loader_Machine_Type +#Depends: ntdll-Loader_Machine_Type Depends: ntdll-DllOverrides_WOW64 Depends: wow64cpu-Wow64Transition \ No newline at end of file diff --git a/patches/ntdll-Junction_Points/0001-ntdll-Add-support-for-junction-point-creation.patch b/patches/ntdll-Junction_Points/0001-ntdll-Add-support-for-junction-point-creation.patch index 2ff39d79..e7cdc376 100644 --- a/patches/ntdll-Junction_Points/0001-ntdll-Add-support-for-junction-point-creation.patch +++ b/patches/ntdll-Junction_Points/0001-ntdll-Add-support-for-junction-point-creation.patch @@ -1,16 +1,16 @@ -From 204020058c317ff7180f3d637da102526751ac29 Mon Sep 17 00:00:00 2001 +From 524983ccd0ecbca845c0d54688b64e729fff9ed3 Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Thu, 16 Jan 2014 20:56:49 -0700 Subject: [PATCH] ntdll: Add support for junction point creation. --- - dlls/ntdll/file.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++ - dlls/ntdll/tests/file.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++++ - include/ddk/ntifs.h | 26 ++++++++++++++ + dlls/ntdll/file.c | 91 +++++++++++++++++++++++++++++++++++++++ + dlls/ntdll/tests/file.c | 94 +++++++++++++++++++++++++++++++++++++++++ + include/ddk/ntifs.h | 26 ++++++++++++ 3 files changed, 211 insertions(+) diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c -index 348a6b6..d34a28d 100644 +index 1a935430..7e5ab211 100644 --- a/dlls/ntdll/file.c +++ b/dlls/ntdll/file.c @@ -108,12 +108,14 @@ @@ -28,7 +28,7 @@ index 348a6b6..d34a28d 100644 #define SECSPERDAY 86400 #define SECS_1601_TO_1970 ((369 * 365 + 89) * (ULONGLONG)SECSPERDAY) -@@ -1649,6 +1651,76 @@ NTSTATUS WINAPI NtDeviceIoControlFile(HANDLE handle, HANDLE event, +@@ -1645,6 +1647,76 @@ NTSTATUS WINAPI NtDeviceIoControlFile(HANDLE handle, HANDLE event, } @@ -105,7 +105,7 @@ index 348a6b6..d34a28d 100644 /************************************************************************** * NtFsControlFile [NTDLL.@] * ZwFsControlFile [NTDLL.@] -@@ -1728,11 +1800,30 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc +@@ -1724,11 +1796,30 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc } break; } @@ -137,7 +137,7 @@ index 348a6b6..d34a28d 100644 return server_ioctl_file( handle, event, apc, apc_context, io, code, in_buffer, in_size, out_buffer, out_size ); diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c -index 6d5ce72..60b32f5 100644 +index 45c8ef0f..167463dc 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c @@ -38,6 +38,7 @@ @@ -148,7 +148,7 @@ index 6d5ce72..60b32f5 100644 #ifndef IO_COMPLETION_ALL_ACCESS #define IO_COMPLETION_ALL_ACCESS 0x001F0003 -@@ -4540,6 +4541,98 @@ static void test_query_ea(void) +@@ -4767,6 +4768,98 @@ static void test_query_ea(void) #undef EA_BUFFER_SIZE } @@ -247,19 +247,19 @@ index 6d5ce72..60b32f5 100644 START_TEST(file) { HMODULE hkernel32 = GetModuleHandleA("kernel32.dll"); -@@ -4607,4 +4700,5 @@ START_TEST(file) +@@ -4837,4 +4930,5 @@ START_TEST(file) test_ioctl(); test_flush_buffers_file(); test_query_ea(); + test_junction_points(); } diff --git a/include/ddk/ntifs.h b/include/ddk/ntifs.h -index a1ed847..ccbd2a7 100644 +index abe357fb..3cba319d 100644 --- a/include/ddk/ntifs.h +++ b/include/ddk/ntifs.h -@@ -132,4 +132,30 @@ typedef struct _FS_FILTER_CALLBACKS - BOOLEAN WINAPI FsRtlIsNameInExpression(PUNICODE_STRING, PUNICODE_STRING, BOOLEAN, PWCH); +@@ -133,4 +133,30 @@ BOOLEAN WINAPI FsRtlIsNameInExpression(PUNICODE_STRING, PUNICODE_STRING, BOOLEAN NTSTATUS WINAPI ObQueryNameString(PVOID,POBJECT_NAME_INFORMATION,ULONG,PULONG); + void WINAPI PsRevertToSelf(void); +typedef struct _REPARSE_DATA_BUFFER { + ULONG ReparseTag; @@ -289,5 +289,5 @@ index a1ed847..ccbd2a7 100644 + #endif -- -2.7.4 +2.20.1 diff --git a/patches/ntdll-Loader_Machine_Type/definition b/patches/ntdll-Loader_Machine_Type/definition index 2f6d9a3f..57a25351 100644 --- a/patches/ntdll-Loader_Machine_Type/definition +++ b/patches/ntdll-Loader_Machine_Type/definition @@ -1 +1,2 @@ Fixes: [38021] Check architecture before trying to load libraries +Disabled: true diff --git a/patches/ntdll-futex-condition-var/definition b/patches/ntdll-futex-condition-var/definition index 4b092557..f446f214 100644 --- a/patches/ntdll-futex-condition-var/definition +++ b/patches/ntdll-futex-condition-var/definition @@ -1 +1,2 @@ Fixes: [45524] Add a futex-based implementation of condition variables +Disabled: true diff --git a/patches/ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-NtBuildNumber.patch b/patches/ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-NtBuildNumber.patch index d850b0d4..04317090 100644 --- a/patches/ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-NtBuildNumber.patch +++ b/patches/ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-NtBuildNumber.patch @@ -1,4 +1,4 @@ -From 2e48aae38577a6ed0564ead6e1e1bd8b886177c8 Mon Sep 17 00:00:00 2001 +From e82c474f4befd2ba092dc41e0d7e188cd6303b7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Tue, 6 Jun 2017 21:08:51 +0200 Subject: [PATCH] ntoskrnl.exe: Implement NtBuildNumber. @@ -10,7 +10,7 @@ Subject: [PATCH] ntoskrnl.exe: Implement NtBuildNumber. 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c -index 6769187..1542c96 100644 +index c3276c95..0e9fa425 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -60,6 +60,7 @@ WINE_DECLARE_DEBUG_CHANNEL(plugplay); @@ -21,7 +21,7 @@ index 6769187..1542c96 100644 extern LONG CALLBACK vectored_handler( EXCEPTION_POINTERS *ptrs ); -@@ -2969,6 +2970,13 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag, +@@ -2913,6 +2914,13 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag, return STATUS_NOT_IMPLEMENTED; } @@ -35,7 +35,7 @@ index 6769187..1542c96 100644 /***************************************************** * DllMain -@@ -2976,7 +2984,6 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag, +@@ -2920,7 +2928,6 @@ NTSTATUS WINAPI IoAcquireRemoveLockEx(PIO_REMOVE_LOCK lock, PVOID tag, BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) { static void *handler; @@ -43,7 +43,7 @@ index 6769187..1542c96 100644 switch(reason) { -@@ -2985,7 +2992,7 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) +@@ -2929,7 +2936,7 @@ BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved ) #if defined(__i386__) || defined(__x86_64__) handler = RtlAddVectoredExceptionHandler( TRUE, vectored_handler ); #endif @@ -53,10 +53,10 @@ index 6769187..1542c96 100644 case DLL_PROCESS_DETACH: if (reserved) break; diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec -index 889da07..9b81e26 100644 +index 19cde8cf..271b7f08 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec +++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec -@@ -748,7 +748,7 @@ +@@ -751,7 +751,7 @@ @ stdcall NtAllocateLocallyUniqueId(ptr) @ stdcall NtAllocateUuids(ptr ptr ptr ptr) @ stdcall NtAllocateVirtualMemory(long ptr long ptr long long) @@ -66,7 +66,7 @@ index 889da07..9b81e26 100644 @ stdcall NtConnectPort(ptr ptr ptr ptr ptr ptr ptr ptr) @ stdcall NtCreateEvent(ptr long ptr long long) diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c -index cbf8bdc..143b86b 100644 +index bd1070c1..2e622c8d 100644 --- a/dlls/ntoskrnl.exe/tests/driver.c +++ b/dlls/ntoskrnl.exe/tests/driver.c @@ -174,6 +174,22 @@ static void winetest_end_todo(void) @@ -92,8 +92,8 @@ index cbf8bdc..143b86b 100644 static void test_currentprocess(void) { PEPROCESS current; -@@ -575,6 +591,18 @@ static void test_stack_callout(void) - else win_skip("KeExpandKernelStackAndCalloutEx is not available\n"); +@@ -604,6 +620,18 @@ static void test_lookaside_list(void) + ExDeleteNPagedLookasideList(&list); } +static void test_version(void) @@ -111,14 +111,14 @@ index cbf8bdc..143b86b 100644 static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info) { ULONG length = stack->Parameters.DeviceIoControl.OutputBufferLength; -@@ -604,6 +632,7 @@ static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info) +@@ -633,6 +661,7 @@ static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info) test_init_funcs(); test_load_driver(); test_sync(); + test_version(); test_stack_callout(); + test_lookaside_list(); - /* print process report */ -- -1.9.1 +2.20.1 diff --git a/patches/ntoskrnl-Stubs/0014-ntoskrnl.exe-Implement-ExInitializeNPagedLookasideLi.patch b/patches/ntoskrnl-Stubs/0014-ntoskrnl.exe-Implement-ExInitializeNPagedLookasideLi.patch deleted file mode 100644 index 6cceff98..00000000 --- a/patches/ntoskrnl-Stubs/0014-ntoskrnl.exe-Implement-ExInitializeNPagedLookasideLi.patch +++ /dev/null @@ -1,261 +0,0 @@ -From 38dab0fbe11effe3fd0f3d94f90865cd096da892 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Tue, 6 Jun 2017 23:42:56 +0200 -Subject: [PATCH] ntoskrnl.exe: Implement ExInitializeNPagedLookasideList. - ---- - dlls/ntoskrnl.exe/ntoskrnl.c | 19 +++++++++- - dlls/ntoskrnl.exe/tests/driver.c | 37 +++++++++++++++++-- - include/ddk/wdm.h | 76 ++++++++++++++++++++++++++++++++++++++-- - include/winnt.h | 2 ++ - 4 files changed, 127 insertions(+), 7 deletions(-) - -diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c -index 1542c96..a450bf6 100644 ---- a/dlls/ntoskrnl.exe/ntoskrnl.c -+++ b/dlls/ntoskrnl.exe/ntoskrnl.c -@@ -2153,7 +2153,24 @@ void WINAPI ExInitializeNPagedLookasideList(PNPAGED_LOOKASIDE_LIST Lookaside, - ULONG Tag, - USHORT Depth) - { -- FIXME( "stub: %p, %p, %p, %u, %lu, %u, %u\n", Lookaside, Allocate, Free, Flags, Size, Tag, Depth ); -+ TRACE( "%p, %p, %p, %u, %lu, %u, %u\n", Lookaside, Allocate, Free, Flags, Size, Tag, Depth ); -+ -+ RtlInitializeSListHead( &Lookaside->L.u.ListHead ); -+ Lookaside->L.Depth = 4; -+ Lookaside->L.MaximumDepth = 256; -+ Lookaside->L.TotalAllocates = 0; -+ Lookaside->L.u2.AllocateMisses = 0; -+ Lookaside->L.TotalFrees = 0; -+ Lookaside->L.u3.FreeMisses = 0; -+ Lookaside->L.Type = NonPagedPool | Flags; -+ Lookaside->L.Tag = Tag; -+ Lookaside->L.Size = Size; -+ Lookaside->L.u4.Allocate = Allocate ? Allocate : ExAllocatePoolWithTag; -+ Lookaside->L.u5.Free = Free ? Free : ExFreePool; -+ Lookaside->L.LastTotalAllocates = 0; -+ Lookaside->L.u6.LastAllocateMisses = 0; -+ -+ /* FIXME: insert in global list of lookadside lists */ - } - - /*********************************************************************** -diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c -index 143b86b..13fce71 100644 ---- a/dlls/ntoskrnl.exe/tests/driver.c -+++ b/dlls/ntoskrnl.exe/tests/driver.c -@@ -22,6 +22,9 @@ - - #include - -+#define NONAMELESSUNION -+#define NONAMELESSSTRUCT -+ - #include "ntstatus.h" - #define WIN32_NO_STATUS - #include "windef.h" -@@ -603,6 +606,33 @@ static void test_version(void) - ok(*pNtBuildNumber == build, "Expected build number %u, got %u\n", build, *pNtBuildNumber); - } - -+static void test_lookaside_list(void) -+{ -+ NPAGED_LOOKASIDE_LIST list; -+ ULONG tag = 0x454e4957; /* WINE */ -+ -+ ExInitializeNPagedLookasideList(&list, NULL, NULL, POOL_NX_ALLOCATION, LOOKASIDE_MINIMUM_BLOCK_SIZE, tag, 0); -+ ok(list.L.Depth == 4, "Expected 4 got %u\n", list.L.Depth); -+ ok(list.L.MaximumDepth == 256, "Expected 256 got %u\n", list.L.MaximumDepth); -+ ok(list.L.TotalAllocates == 0, "Expected 0 got %u\n", list.L.TotalAllocates); -+ ok(list.L.u2.AllocateMisses == 0, "Expected 0 got %u\n", list.L.u2.AllocateMisses); -+ ok(list.L.TotalFrees == 0, "Expected 0 got %u\n", list.L.TotalFrees); -+ ok(list.L.u3.FreeMisses == 0, "Expected 0 got %u\n", list.L.u3.FreeMisses); -+ ok(list.L.Type == (NonPagedPool|POOL_NX_ALLOCATION), -+ "Expected NonPagedPool|POOL_NX_ALLOCATION got %u\n", list.L.Type); -+ ok(list.L.Tag == tag, "Expected %x got %x\n", tag, list.L.Tag); -+ ok(list.L.Size == LOOKASIDE_MINIMUM_BLOCK_SIZE, -+ "Expected %u got %u\n", LOOKASIDE_MINIMUM_BLOCK_SIZE, list.L.Size); -+ ok(list.L.LastTotalAllocates == 0,"Expected 0 got %u\n", list.L.LastTotalAllocates); -+ ok(list.L.u6.LastAllocateMisses == 0,"Expected 0 got %u\n", list.L.u6.LastAllocateMisses); -+ ExDeleteNPagedLookasideList(&list); -+ -+ list.L.Depth = 0; -+ ExInitializeNPagedLookasideList(&list, NULL, NULL, 0, LOOKASIDE_MINIMUM_BLOCK_SIZE, tag, 20); -+ ok(list.L.Depth == 4, "Expected 4 got %u\n", list.L.Depth); -+ ExDeleteNPagedLookasideList(&list); -+} -+ - static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info) - { - ULONG length = stack->Parameters.DeviceIoControl.OutputBufferLength; -@@ -633,6 +663,7 @@ static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info) - test_load_driver(); - test_sync(); - test_version(); -+ test_lookaside_list(); - test_stack_callout(); - - /* print process report */ -@@ -685,7 +716,7 @@ static NTSTATUS test_load_driver_ioctl(IRP *irp, IO_STACK_LOCATION *stack, ULONG - - static NTSTATUS WINAPI driver_Create(DEVICE_OBJECT *device, IRP *irp) - { -- irp->IoStatus.Status = STATUS_SUCCESS; -+ irp->IoStatus.u.Status = STATUS_SUCCESS; - IoCompleteRequest(irp, IO_NO_INCREMENT); - return STATUS_SUCCESS; - } -@@ -710,14 +741,14 @@ static NTSTATUS WINAPI driver_IoControl(DEVICE_OBJECT *device, IRP *irp) - break; - } - -- irp->IoStatus.Status = status; -+ irp->IoStatus.u.Status = status; - IoCompleteRequest(irp, IO_NO_INCREMENT); - return status; - } - - static NTSTATUS WINAPI driver_Close(DEVICE_OBJECT *device, IRP *irp) - { -- irp->IoStatus.Status = STATUS_SUCCESS; -+ irp->IoStatus.u.Status = STATUS_SUCCESS; - IoCompleteRequest(irp, IO_NO_INCREMENT); - return STATUS_SUCCESS; - } -diff --git a/include/ddk/wdm.h b/include/ddk/wdm.h -index 03af14d..a4114e6 100644 ---- a/include/ddk/wdm.h -+++ b/include/ddk/wdm.h -@@ -153,20 +153,18 @@ typedef struct _KWAIT_BLOCK { - USHORT WaitType; - } KWAIT_BLOCK, *PKWAIT_BLOCK, *RESTRICTED_POINTER PRKWAIT_BLOCK; - --typedef struct _ALLOCATE_FUNCTION *PALLOCATE_FUNCTION; - typedef struct _IO_TIMER *PIO_TIMER; - typedef struct _IO_TIMER_ROUTINE *PIO_TIMER_ROUTINE; - typedef struct _ETHREAD *PETHREAD; --typedef struct _FREE_FUNCTION *PFREE_FUNCTION; - typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD; - typedef struct _EPROCESS *PEPROCESS; - typedef struct _ERESOURCE *PERESOURCE; - typedef struct _IO_WORKITEM *PIO_WORKITEM; --typedef struct _NPAGED_LOOKASIDE_LIST *PNPAGED_LOOKASIDE_LIST; - typedef struct _PAGED_LOOKASIDE_LIST *PPAGED_LOOKASIDE_LIST; - typedef struct _OBJECT_TYPE *POBJECT_TYPE; - typedef struct _OBJECT_HANDLE_INFORMATION *POBJECT_HANDLE_INFORMATION; - typedef struct _ZONE_HEADER *PZONE_HEADER; -+typedef struct _LOOKASIDE_LIST_EX *PLOOKASIDE_LIST_EX; - - #define FM_LOCK_BIT 0x1 - -@@ -193,6 +191,11 @@ typedef struct _VPB { - WCHAR VolumeLabel[MAXIMUM_VOLUME_LABEL_LENGTH / sizeof(WCHAR)]; - } VPB, *PVPB; - -+#define POOL_QUOTA_FAIL_INSTEAD_OF_RAISE 0x8 -+#define POOL_RAISE_IF_ALLOCATION_FAILURE 0x10 -+#define POOL_COLD_ALLOCATION 0x100 -+#define POOL_NX_ALLOCATION 0x200 -+ - typedef enum _POOL_TYPE { - NonPagedPool, - PagedPool, -@@ -1232,6 +1235,71 @@ typedef struct _KLOCK_QUEUE_HANDLE { - KIRQL OldIrql; - } KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE; - -+typedef void * (NTAPI *PALLOCATE_FUNCTION)(POOL_TYPE, SIZE_T, ULONG); -+typedef void * (NTAPI *PALLOCATE_FUNCTION_EX)(POOL_TYPE, SIZE_T, ULONG, PLOOKASIDE_LIST_EX); -+typedef void (NTAPI *PFREE_FUNCTION)(void *); -+typedef void (NTAPI *PFREE_FUNCTION_EX)(void *, PLOOKASIDE_LIST_EX); -+ -+#ifdef _WIN64 -+#define LOOKASIDE_ALIGN DECLSPEC_CACHEALIGN -+#else -+#define LOOKASIDE_ALIGN -+#endif -+ -+#define LOOKASIDE_MINIMUM_BLOCK_SIZE (RTL_SIZEOF_THROUGH_FIELD(SLIST_ENTRY, Next)) -+ -+typedef struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE -+{ -+ union -+ { -+ SLIST_HEADER ListHead; -+ SINGLE_LIST_ENTRY SingleListHead; -+ } DUMMYUNIONNAME; -+ USHORT Depth; -+ USHORT MaximumDepth; -+ ULONG TotalAllocates; -+ union -+ { -+ ULONG AllocateMisses; -+ ULONG AllocateHits; -+ } DUMMYUNIONNAME2; -+ ULONG TotalFrees; -+ union -+ { -+ ULONG FreeMisses; -+ ULONG FreeHits; -+ } DUMMYUNIONNAME3; -+ POOL_TYPE Type; -+ ULONG Tag; -+ ULONG Size; -+ union -+ { -+ PALLOCATE_FUNCTION_EX AllocateEx; -+ PALLOCATE_FUNCTION Allocate; -+ } DUMMYUNIONNAME4; -+ union -+ { -+ PFREE_FUNCTION_EX FreeEx; -+ PFREE_FUNCTION Free; -+ } DUMMYUNIONNAME5; -+ LIST_ENTRY ListEntry; -+ ULONG LastTotalAllocates; -+ union -+ { -+ ULONG LastAllocateMisses; -+ ULONG LastAllocateHits; -+ } DUMMYUNIONNAME6; -+ ULONG Future[2]; -+} GENERAL_LOOKASIDE; -+ -+typedef struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST -+{ -+ GENERAL_LOOKASIDE L; -+#if defined(__i386__) -+ KSPIN_LOCK Lock__ObsoleteButDoNotDelete; -+#endif -+} NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST; -+ - typedef NTSTATUS (NTAPI EX_CALLBACK_FUNCTION)(void *CallbackContext, void *Argument1, void *Argument2); - typedef EX_CALLBACK_FUNCTION *PEX_CALLBACK_FUNCTION; - -@@ -1384,8 +1452,10 @@ PVOID WINAPI ExAllocatePool(POOL_TYPE,SIZE_T); - PVOID WINAPI ExAllocatePoolWithQuota(POOL_TYPE,SIZE_T); - PVOID WINAPI ExAllocatePoolWithTag(POOL_TYPE,SIZE_T,ULONG); - PVOID WINAPI ExAllocatePoolWithQuotaTag(POOL_TYPE,SIZE_T,ULONG); -+void WINAPI ExDeleteNPagedLookasideList(PNPAGED_LOOKASIDE_LIST); - void WINAPI ExFreePool(PVOID); - void WINAPI ExFreePoolWithTag(PVOID,ULONG); -+void WINAPI ExInitializeNPagedLookasideList(PNPAGED_LOOKASIDE_LIST,PALLOCATE_FUNCTION,PFREE_FUNCTION,ULONG,SIZE_T,ULONG,USHORT); - PSLIST_ENTRY WINAPI ExInterlockedPopEntrySList(PSLIST_HEADER,PKSPIN_LOCK); - PSLIST_ENTRY WINAPI ExInterlockedPushEntrySList(PSLIST_HEADER,PSLIST_ENTRY,PKSPIN_LOCK); - LIST_ENTRY * WINAPI ExInterlockedRemoveHeadList(LIST_ENTRY*,KSPIN_LOCK*); -diff --git a/include/winnt.h b/include/winnt.h -index 75dfcd8..1b840bd 100644 ---- a/include/winnt.h -+++ b/include/winnt.h -@@ -757,6 +757,8 @@ typedef struct _MEMORY_BASIC_INFORMATION - #define UNICODE_STRING_MAX_CHARS 32767 - - #define FIELD_OFFSET(type, field) ((LONG)offsetof(type, field)) -+#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field)) -+#define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field)) - - #ifdef __GNUC__ - # define CONTAINING_RECORD(address, type, field) ({ \ --- -1.9.1 - diff --git a/patches/ntoskrnl-Stubs/definition b/patches/ntoskrnl-Stubs/definition index d7e8b7e6..125866aa 100644 --- a/patches/ntoskrnl-Stubs/definition +++ b/patches/ntoskrnl-Stubs/definition @@ -1,6 +1,3 @@ Fixes: Add stub for ntoskrnl.Mm{Map,Unmap}LockedPages Fixes: Add stub for ntoskrnl.IoGetDeviceAttachmentBaseRef Fixes: Implement ntoskrnl.NtBuildNumber -Fixes: Implement ntoskrnl.ExInitializeNPagedLookasideList -# ExInitializeNPagedLookasideList() is wanted by sfvfs02.sys, used by World Racing. -Depends: Compiler_Warnings diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index ea89d85b..5808f612 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "6b76648a8b773838ecde00719ca54a433edf5ce6" + echo "c3ac646a8ded3ef3ebc743a7fdda01b0691a427a" } # Show version information @@ -210,7 +210,6 @@ patch_enable_all () enable_ntdll_LDR_MODULE="$1" enable_ntdll_LdrGetDllHandle="$1" enable_ntdll_LdrInitializeThunk="$1" - enable_ntdll_Loader_Machine_Type="$1" enable_ntdll_Manifest_Range="$1" enable_ntdll_NtAccessCheck="$1" enable_ntdll_NtContinue="$1" @@ -240,7 +239,6 @@ patch_enable_all () enable_ntdll_WRITECOPY="$1" enable_ntdll_Wait_User_APC="$1" enable_ntdll_Zero_mod_name="$1" - enable_ntdll_futex_condition_var="$1" enable_ntdll_set_full_cpu_context="$1" enable_ntoskrnl_Stubs="$1" enable_ntoskrnl_exe_Fix_Relocation="$1" @@ -796,9 +794,6 @@ patch_enable () ntdll-LdrInitializeThunk) enable_ntdll_LdrInitializeThunk="$2" ;; - ntdll-Loader_Machine_Type) - enable_ntdll_Loader_Machine_Type="$2" - ;; ntdll-Manifest_Range) enable_ntdll_Manifest_Range="$2" ;; @@ -886,9 +881,6 @@ patch_enable () ntdll-Zero_mod_name) enable_ntdll_Zero_mod_name="$2" ;; - ntdll-futex-condition-var) - enable_ntdll_futex_condition_var="$2" - ;; ntdll-set_full_cpu_context) enable_ntdll_set_full_cpu_context="$2" ;; @@ -1976,13 +1968,6 @@ if test "$enable_nvcuvid_CUDA_Video_Support" -eq 1; then enable_nvapi_Stub_DLL=1 fi -if test "$enable_ntoskrnl_Stubs" -eq 1; then - if test "$enable_Compiler_Warnings" -gt 1; then - abort "Patchset Compiler_Warnings disabled, but ntoskrnl-Stubs depends on that." - fi - enable_Compiler_Warnings=1 -fi - if test "$enable_ntdll_SystemRoot_Symlink" -eq 1; then if test "$enable_ntdll_Exception" -gt 1; then abort "Patchset ntdll-Exception disabled, but ntdll-SystemRoot_Symlink depends on that." @@ -2078,14 +2063,10 @@ if test "$enable_ntdll_DllRedirects" -eq 1; then if test "$enable_ntdll_DllOverrides_WOW64" -gt 1; then abort "Patchset ntdll-DllOverrides_WOW64 disabled, but ntdll-DllRedirects depends on that." fi - if test "$enable_ntdll_Loader_Machine_Type" -gt 1; then - abort "Patchset ntdll-Loader_Machine_Type disabled, but ntdll-DllRedirects depends on that." - fi if test "$enable_wow64cpu_Wow64Transition" -gt 1; then abort "Patchset wow64cpu-Wow64Transition disabled, but ntdll-DllRedirects depends on that." fi enable_ntdll_DllOverrides_WOW64=1 - enable_ntdll_Loader_Machine_Type=1 enable_wow64cpu_Wow64Transition=1 fi @@ -4563,21 +4544,6 @@ if test "$enable_ntdll_DllOverrides_WOW64" -eq 1; then ) >> "$patchlist" fi -# Patchset ntdll-Loader_Machine_Type -# | -# | This patchset fixes the following Wine bugs: -# | * [#38021] Check architecture before trying to load libraries -# | -# | Modified files: -# | * dlls/ntdll/loader.c -# | -if test "$enable_ntdll_Loader_Machine_Type" -eq 1; then - patch_apply ntdll-Loader_Machine_Type/0001-ntdll-Check-architecture-before-loading-module.patch - ( - printf '%s\n' '+ { "Michael Müller", "ntdll: Check architecture before loading module.", 1 },'; - ) >> "$patchlist" -fi - # Patchset wow64cpu-Wow64Transition # | # | This patchset fixes the following Wine bugs: @@ -4599,7 +4565,7 @@ fi # Patchset ntdll-DllRedirects # | # | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-DllOverrides_WOW64, ntdll-Loader_Machine_Type, wow64cpu-Wow64Transition +# | * ntdll-DllOverrides_WOW64, wow64cpu-Wow64Transition # | # | Modified files: # | * dlls/ntdll/loader.c, dlls/ntdll/loadorder.c, dlls/ntdll/ntdll_misc.h @@ -5032,7 +4998,7 @@ fi # Patchset ntdll-Purist_Mode # | # | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-DllOverrides_WOW64, ntdll-Loader_Machine_Type, wow64cpu-Wow64Transition, ntdll-DllRedirects +# | * ntdll-DllOverrides_WOW64, wow64cpu-Wow64Transition, ntdll-DllRedirects # | # | Modified files: # | * dlls/ntdll/loadorder.c @@ -5267,21 +5233,6 @@ if test "$enable_ntdll_Zero_mod_name" -eq 1; then ) >> "$patchlist" fi -# Patchset ntdll-futex-condition-var -# | -# | This patchset fixes the following Wine bugs: -# | * [#45524] Add a futex-based implementation of condition variables -# | -# | Modified files: -# | * dlls/ntdll/sync.c -# | -if test "$enable_ntdll_futex_condition_var" -eq 1; then - patch_apply ntdll-futex-condition-var/0001-ntdll-Add-a-futex-based-condition-variable-implement.patch - ( - printf '%s\n' '+ { "Zebediah Figura", "ntdll: Add a futex-based condition variable implementation.", 1 },'; - ) >> "$patchlist" -fi - # Patchset ntdll-set_full_cpu_context # | # | Modified files: @@ -5296,23 +5247,17 @@ fi # Patchset ntoskrnl-Stubs # | -# | This patchset has the following (direct or indirect) dependencies: -# | * Compiler_Warnings -# | # | Modified files: -# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec, dlls/ntoskrnl.exe/tests/driver.c, include/ddk/wdm.h, -# | include/winnt.h +# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec, dlls/ntoskrnl.exe/tests/driver.c # | if test "$enable_ntoskrnl_Stubs" -eq 1; then patch_apply ntoskrnl-Stubs/0009-ntoskrnl.exe-Implement-MmMapLockedPages-and-MmUnmapL.patch patch_apply ntoskrnl-Stubs/0011-ntoskrnl.exe-Add-IoGetDeviceAttachmentBaseRef-stub.patch patch_apply ntoskrnl-Stubs/0013-ntoskrnl.exe-Implement-NtBuildNumber.patch - patch_apply ntoskrnl-Stubs/0014-ntoskrnl.exe-Implement-ExInitializeNPagedLookasideLi.patch ( printf '%s\n' '+ { "Christian Costa", "ntoskrnl.exe: Implement MmMapLockedPages and MmUnmapLockedPages.", 1 },'; printf '%s\n' '+ { "Jarkko Korpi", "ntoskrnl.exe: Add IoGetDeviceAttachmentBaseRef stub.", 1 },'; printf '%s\n' '+ { "Michael Müller", "ntoskrnl.exe: Implement NtBuildNumber.", 1 },'; - printf '%s\n' '+ { "Michael Müller", "ntoskrnl.exe: Implement ExInitializeNPagedLookasideList.", 1 },'; ) >> "$patchlist" fi @@ -6761,7 +6706,7 @@ fi # Patchset uxtheme-GTK_Theming # | # | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-DllOverrides_WOW64, ntdll-Loader_Machine_Type, wow64cpu-Wow64Transition, ntdll-DllRedirects +# | * ntdll-DllOverrides_WOW64, wow64cpu-Wow64Transition, ntdll-DllRedirects # | # | Modified files: # | * aclocal.m4, configure.ac, dlls/uxtheme-gtk/Makefile.in, dlls/uxtheme-gtk/button.c, dlls/uxtheme-gtk/combobox.c, dlls @@ -7391,7 +7336,7 @@ fi # Patchset winedevice-Default_Drivers # | # | This patchset has the following (direct or indirect) dependencies: -# | * dxva2-Video_Decoder, Compiler_Warnings, ntoskrnl-Stubs +# | * dxva2-Video_Decoder, ntoskrnl-Stubs # | # | Modified files: # | * configure.ac, dlls/dxgkrnl.sys/Makefile.in, dlls/dxgkrnl.sys/dxgkrnl.sys.spec, dlls/dxgkrnl.sys/main.c, diff --git a/patches/winedevice-Default_Drivers/0004-programs-winedevice-Load-some-common-drivers-and-fix.patch b/patches/winedevice-Default_Drivers/0004-programs-winedevice-Load-some-common-drivers-and-fix.patch index bef72bf1..9dd4af85 100644 --- a/patches/winedevice-Default_Drivers/0004-programs-winedevice-Load-some-common-drivers-and-fix.patch +++ b/patches/winedevice-Default_Drivers/0004-programs-winedevice-Load-some-common-drivers-and-fix.patch @@ -1,19 +1,19 @@ -From 19d87f547060563a82988d2c17c6a923fc27c6ca Mon Sep 17 00:00:00 2001 +From 09df46b62a34ccfdc214bc3b5e20731d7170f93f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 8 Jun 2017 23:50:03 +0200 Subject: [PATCH] programs/winedevice: Load some common drivers and fix ldr order. --- - dlls/ntoskrnl.exe/tests/driver.c | 51 ++++++++++++++++++++++++++++++++++++++++ - programs/winedevice/device.c | 26 ++++++++++++++++++++ + dlls/ntoskrnl.exe/tests/driver.c | 51 ++++++++++++++++++++++++++++++++ + programs/winedevice/device.c | 26 ++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/dlls/ntoskrnl.exe/tests/driver.c b/dlls/ntoskrnl.exe/tests/driver.c -index 13fce71..8da13cd 100644 +index 2e622c8d..d37e0b93 100644 --- a/dlls/ntoskrnl.exe/tests/driver.c +++ b/dlls/ntoskrnl.exe/tests/driver.c -@@ -41,6 +41,8 @@ static const WCHAR driver_device[] = {'\\','D','e','v','i','c','e', +@@ -38,6 +38,8 @@ static const WCHAR driver_device[] = {'\\','D','e','v','i','c','e', static const WCHAR driver_link[] = {'\\','D','o','s','D','e','v','i','c','e','s', '\\','W','i','n','e','T','e','s','t','D','r','i','v','e','r',0}; @@ -22,8 +22,8 @@ index 13fce71..8da13cd 100644 static HANDLE okfile; static LONG successes; static LONG failures; -@@ -633,6 +635,52 @@ static void test_lookaside_list(void) - ExDeleteNPagedLookasideList(&list); +@@ -632,6 +634,52 @@ static void test_version(void) + ok(*pNtBuildNumber == build, "Expected build number %u, got %u\n", build, *pNtBuildNumber); } +static void test_default_modules(void) @@ -76,14 +76,14 @@ index 13fce71..8da13cd 100644 { ULONG length = stack->Parameters.DeviceIoControl.OutputBufferLength; @@ -664,6 +712,7 @@ static NTSTATUS main_test(IRP *irp, IO_STACK_LOCATION *stack, ULONG_PTR *info) - test_sync(); test_version(); + test_stack_callout(); test_lookaside_list(); + test_default_modules(); - test_stack_callout(); /* print process report */ -@@ -773,6 +822,8 @@ NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, PUNICODE_STRING registry) + if (test_input->winetest_debug) +@@ -772,6 +821,8 @@ NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, PUNICODE_STRING registry) DbgPrint("loading driver\n"); @@ -93,7 +93,7 @@ index 13fce71..8da13cd 100644 driver->DriverUnload = driver_Unload; diff --git a/programs/winedevice/device.c b/programs/winedevice/device.c -index 201a041..33b332d 100644 +index 201a0411..33b332da 100644 --- a/programs/winedevice/device.c +++ b/programs/winedevice/device.c @@ -124,7 +124,33 @@ static DWORD WINAPI service_handler( DWORD ctrl, DWORD event_type, LPVOID event_ @@ -131,5 +131,5 @@ index 201a041..33b332d 100644 if (!(stop_event = CreateEventW( NULL, TRUE, FALSE, NULL ))) return; -- -1.9.1 +2.20.1